
jvm 语法糖
发布日期:2021-05-09 05:38:18
浏览次数:23
分类:博客文章
本文共 805 字,大约阅读时间需要 2 分钟。
jvm 语法糖主要包括:
1. 泛型 相同擦除类型参数,返回值不同也可以编译成功, 对比方法重载矛盾。
原因:class文件格式中,只要描述符不是完全一致的两个方法就可以共存。
擦除:擦除方法code属性中字节码擦除,元数据还保留在泛型中,可以通过反射获取参数化类型。
3. 装箱拆箱:Integer.valueOf(),Integer.intValue()
4. for循环,把遍历循环代码还原成了迭代器实现,因此需要被遍历的类实现Iterable接口。
5. 变长参数:调用的时候变成了数组类型参数。
6. 条件编译:使用条件为常量的if语句,根据布尔常量值的真假,编译器会把分支中不成立的代码块消除(接触语法糖阶段)
java语言编译方式:将所有编译单元语法书顶级节点输入到待处理列表再进行编译,各个文件之间能相互提供符号信息。
7. 内部类
Java的内部类也是一个语法糖,它仅仅是一个编译时的概念,outer.java里面定义了一个内部类inner,一旦编译成功,就会生成两个完全不同的.class文件了,分别是outer.class和outer$inner.class。所以内部类的名字完全可以和它的外部类名字相同。
内部类分为四种:成员内部类、局部内部类、匿名内部类、静态内部类。
8. 枚举类
在JVM字节码文件结构中,并没有“枚举”这个类型。Java的枚举类型,会在编译期被编译成一个普通了类。
9. 字符串的switch支持:
switch string条件判断 实际上是对string.hashCode的判断
switch(key.hashCode()) { case 49: if(key.equals("1")) { var2 = 0; } break;case 50:
其它还有如断言语句,try语句中定义和关闭资源等。
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月09日 04时04分04秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
程序员的开发文档
2019-03-06
mybatis generator修改默认生成的sql模板
2019-03-06
算法 - 如何从股票买卖中,获得最大收益
2019-03-06
算法 - 链表操作思想 && case
2019-03-06
C#之反射、元数据详解
2019-03-06
通俗易懂设计模式解析——单例模式
2019-03-06
通俗易懂设计模式解析——抽象工厂模式
2019-03-06
前端数据渲染及mustache模板引擎的简单实现
2019-03-06
设计模式系列之工厂模式三兄弟(Factory Pattern)
2019-03-06
OAuth2.0认证详解
2019-03-06
在滴滴和头条干了 2 年后端开发,太真实…
2019-03-06
你还在用命令看日志?快用 Kibana 吧,一张图片胜过千万行日志!
2019-03-06
Linux中对用户操作
2019-03-06
Linux查看CUDA和cuDNN版本
2019-03-06
C#获取Excel中所有的Sheet名称
2019-03-06
[最全整理]关于决策树的一切
2019-03-06
100天搞定机器学习|Day9-12 支持向量机
2019-03-06
100天搞定机器学习|Day19-20 加州理工学院公开课:机器学习与数据挖掘
2019-03-06
100天搞定机器学习|day37 无公式理解反向传播算法之精髓
2019-03-06
数据工程师必备的8项技能,不要只知道Python!
2019-03-06