4N7JM-CV98F-WY9XX-9D8CF-369TT
java虚拟机编译阶段会将java文件编译程字节码的class文件,编译过程,java虚拟机并不是会原原本本的将java源文件编程class文件,而是会做一些优化;常见有如下:
- java文件中注释代码在编译阶段就会直接丢弃掉;
- 比如会为每一个类生成一个无参的构造函数,
- 如果使用了lombok的@data注解,会自动生成set/get方法等等优化;
- 并发编程中用到的volatile的指令重排其实也是java虚拟机生成class文件的过程中重要的一部分;
而今天我遇到的另外一个问题是java虚拟对常量的优化;先看下java文件,如下图

版权声明:本文为LLF_1241352445原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。