6 语法糖
所谓的 语法糖,其实就是指 java编译器把 *.java 源码编译为*.class 字节码的过程中,自动生成和转换的一些代码,主要是为了减轻程序员的负担,算是 java 编译器给我们的一个额外福利(给糖吃嘛) 注意,以下代码的分析,借助了 javap 工具,idea 的反编译功能,idea 插件 jclasslib 等工具。另外,编译器转换的结果直接就是 class 字节码,只是为了便于阅读,给出了 几乎等价 的 java 源码方式,并不是编译器还会转换出中间的 java 源码,切记。
6.1 默认构造器
6.2 自动拆装箱
6.3 泛型集合取值
泛型的定义只会在编译阶段检查,在实际的运行阶段,都是使用的Object
6.4 泛型反射
这里的泛型并没有被擦除
可以通过反射拿到这些信息
输出:
6.5 可变参数
...代表数组
6.6 foreach循环
集合的循环
6.7 switch字符串
用equals作用: 防止哈希碰撞
6.8 switch枚举
6.9 枚举类
6.10 try-with-resources
不会丢掉自己抛出的异常
6.11 方法重写时的桥接方法
synthetic bridge 合成方法:允许方法重名,且参数一直,方便该合成方法与父类返回值,名称一致,借此来调用子类方法
验证:
可以看到输出了两个类型的方法名,说明这个类中有两个同名方法test.candy.B.m
因为通常来说
public void load(String a); public int load(String a); 这两个方法肯定是没办法重载的
有了桥接方法,就可以实现一个类里存放两个同名同参的方法了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)