jvm
文章平均质量分 73
吊儿郎当当
这个作者很懒,什么都没留下…
展开
-
【转】Java 运行时动态编译源代码原理和实现
编译,一般来说就是将源代码转换成机器码的过程,比如在C语言中中,将C语言源代码编译成a.out,,但是在Java中的理解可能有点不同,编译指的是将java 源代码转换成class字节码的过程,而不是真正的机器码,这是因为中间隔着一个JVM。虽然对于编译的理解不同,但是编译的过程基本上都是相同的。但是我们熟悉的编译大都是点击一下Eclipse或者Intellij Idea的Run或者Build按钮,但是在点击后究竟发生什么?其实我没仔细了解过,只是知道这个程序运行起来了,但是如果你使用过javac命令去编译代转载 2022-05-27 10:46:56 · 1431 阅读 · 1 评论 -
类初始化和接口初始化的一点疑惑
接口与类真正有所区别的是前面讲述的六种“有且仅有”需要开始初始化场景中的第三种:当一个类在初始化时,要求其父类全部都已经初始化过了,但是一个接口在初始化时,并不要求其父接口全部都完成了初始化,只有在真正使用到父接口的时候(如引用接口中定义的常量)才会初始化。 ——《深入理解Java虚拟机(第三版):JVM高级特性与最佳实践》 但是文中又指出: 引用类中的常量不会导致类被初始化,因为编译阶段已经将常量移动到常量池中了 有些疑惑,是不是冲突呢?不过仔细看了下之前的内容,文中也提到 常量池中只能.原创 2021-08-29 19:05:25 · 195 阅读 · 0 评论