杂项3

简介: 本内容为Java编程相关知识点整理,涵盖集合遍历、动态代理、网络编程、多线程、注解、IO流操作及POJO、DTO、VO的区别等内容,适合开发者学习与参考。

o.get理解

Set<Map.Entry<String, Integer>> entries = m1.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
    entry.getValue()+entry.getKey()
}

hashmap的遍历

Map.Entry<String, Integer>这是set集合的泛型,entries是set类型,键值对集合,entry是Entry类型这个类型的内容就是个键值对

Optional<Map.Entry<String, Integer>> o = m1.entrySet().stream().max((o1, o2) -> o1.getValue()-o2.getValue());
Map.Entry<String, Integer> entry = o.get();  //o.get()如何理解//o.get()是optional的方法,获取内容,键值对(Entry类型)

o.get()是optional的方法,获取optional类中的内容,

针对tcp连接。客户端和服务器端均会有端口

客户端定义时指定的端口是与服务器端连接的端口,但是在程序运行时还会默认动态生成一个端口

在服务器端和客户端,调用输入输出的getInputStream();.getOutputStream()两个基本的字节数输入流,都需要客户端对象,而不是服务器端对象

DataInputStream dataInputStream = new DataInputStream(socket.getInputStream());
DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());

IUser proxy = ProxyFactory.getProxy(u1);  //直接使用泛型;**接口类型**接收代理对象。

理解:ProxyFactory.getProxy(u1)返回的对象必须使用接口来接;IUser是接口

原因:由于 Java 类只能继承一个父类,而动态生成的代理类已经继承了java.lang.reflect.Proxy,因此无法再继承目标类。只能通过实现接口来定义代理行为。

两种方法,一个带参数,一个不带参数

动态代理时,要传输形参的内容时把agrs写上,然后去判断,根据参数的不同表示不同赋值给另一个零食参数,最后进行打印输出;invoke()只写一次

method.invoke(u1, args);
String paramsString;
if (args == null) {
    paramsString = "[]";
} else {
    paramsString = Arrays.toString(args);
}

添加运行时期的是元注解(注解的注解)

/**
 @Target(ElementType.TYPE)  用于描述注解可以使用在哪里
 TYPE,类,接口
 FIELD,成员变量
 METHOD,成员方法
 PARAMETER,方法参数
 CONSTRUCTOR,构造器
 LOCAL_VARIABLE,局部变量
 */
@Target({ElementType.TYPE,ElementType.METHOD})  //可以用在类或接口上和方法上
//上述一旦著名,下面要写RUNTIME,**不然在测试是就默认消失了**/因为默认是class
    //@Retention
    //作用:声明注解的保留周期。
    //@Retention(RetentionPolicy.RUNTIME)
    //SOURCE:只作用在源码阶段,字节码文件中不存在。
    //        CLASS(默认值):保留到字节码文件阶段,运行阶段不存在,
    //       ** RUNTIME(开发常用):一直保留到运行阶段。推荐使用**
    //        * */
    @Retention(RetentionPolicy.RUNTIME)
    public  @interface MyBook3 {
    String value();
}

在Java中:相对路径是以工程目录为基准,所以找某个文件,要以模块名为起始往下找

线程理解

start方法只能调用一次(一个线程),多次调用会报错

直接调用线程重写的run方法,没用通过start方法去调用(调用start方法,默认创建线程,调用run方法),则不会创建线程,调用的run方法仍是main在执行

sleep不释放锁

&:只有当两个位都为 1 时,结果才为 1,否则为 0。

^: 对于每一对二进制位,只有当两个位都为 1 时,结果才为 1,否则为 0。

pojo dto vo

  • POJO:最基础的 “数据箱子”,跟数据库表对应,在哪都能用。
  • DTO:“传输专用箱子”,在系统间传数据时用,按需裁剪字段。
  • VO:“前端展示专用箱子”,字段完全按页面需要来,拿来就能显示。

pojo最基础的,dto用于c-s-m三层之间使用,vo主要用于展示给前端的

controller层(方法参数pojo )->传给service层(方法参数dto)->传到mapper层(方法参数dto)

->mapper返回(返回值 vo)->service层返回(返回值 vo)->controller层返回(返回值 vo)

如果是多表则controller层(方法参数dto )->传给service层(方法参数转化为单表操作)->传到mapper层(方法参数单表)

->mapper返回(返回值 vo)->service层返回(返回值 vo)->controller层返回(返回值 vo)

多表到s-c层要裁剪, dto属性少于(不包括多表)pojo则,传递用dto

总结:字段设计原则

类型

字段来源 / 设计原则

例子(假设数据库有 user

表)

POJO

与数据库表字段严格一一对应。

id

, username

, password

, createTime

DTO

根据业务需求裁剪或组合(可跨表)。多表常用

注册时:username

, password

(无 id

)

VO

根据前端 UI定制,可能包含计算值。

展示时:fullName

, formattedTime

(无 password

)

关键区别

  • POJO:数据库的忠实映射,不做任何加工。
  • DTO:服务间传输的 “最小必要数据”,比如注册时不需要 id,查询列表时可能需要关联其他表的数据。
  • VO:前端的 “最终展示形态”,可能包含拼接、格式化、过滤后的数据。
相关文章
|
Kubernetes 持续交付 数据库
阿里云ACK+GitLab企业级部署实战教程
GitLab 是一个功能强大的基于 Web 的 DevOps 生命周期平台,整合了源代码管理、持续集成/持续部署(CI/CD)、项目管理等多种工具。其一体化设计使得开发团队能够在同一平台上进行代码协作、自动化构建与部署及全面的项目监控,极大提升了开发效率和项目透明度。 GitLab 的优势在于其作为一体化平台减少了工具切换,高度可定制以满足不同项目需求,并拥有活跃的开源社区和企业级功能,如高级权限管理和专业的技术支持。借助这些优势,GitLab 成为许多开发团队首选的 DevOps 工具,实现从代码编写到生产部署的全流程自动化和优化。
|
运维 监控 安全
云上数据防护新思路,DSPM来袭
本文主要介绍数据也需要安全态势管理。
1051 0
云上数据防护新思路,DSPM来袭
|
云计算 开发者
上云有风险 公有云选型小心进坑
本文讲的是上云有风险 公有云选型小心进坑【IT168 云计算】市场商业的运作规则就是大鱼吃小鱼小鱼吃虾米,适者生存。在公有云领域,如果你没有实力长时间支撑一个企业运营微利甚至不盈利,那么云平台倒下一定是必然。至于为什么,想必不用说,诸位看官也能明白。
2507 0
|
14天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
8083 15
|
13天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
2116 12
|
12天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
1812 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
11天前
|
人工智能 编解码 并行计算
MiniMax-H3 一键整合包技术文档:8G 显存运行 AI 漫剧制作 —— 角色替换 / 动作迁移 / 文图生视频部署与调参指南
MiniMax H3 是 MiniMax 开源的全模态视频生成模型,支持文/图/音/视多条件输入,输出最高2K、15秒带双声道音频视频。本文档详述其Int8量化版在8GB显存下的本地一键部署、三段式工作流(EDIT/REPLACE/CONTINUE)、参数调优及常见问题排查。(239字)
|
7天前
|
人工智能 Linux 开发者
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
Codex是OpenAI推出的AI编程智能体,可读取本地项目、理解需求并自动修改代码。支持桌面GUI、命令行(CLI)及VS Code/Cursor插件三种形态,覆盖可视化操作、终端高效开发与编辑器无缝集成场景,助开发者用自然语言驱动编码全流程。(239字)
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)

热门文章

最新文章