摘要: 1.类加载的时机 1. 遇到 new 、 get static 、 put static 和 invoke static 这四条字节码指令时,如果对应的类没有初始化,则要对对应的类先进行初始化。 这四个指令对应到我们java代码中的场景分别是: new关键字实例化对象的时候; 读取或设置一个类的静态 阅读全文
posted @ 2020-07-06 19:23 习惯1991 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 我们可任意打开一个Class文件(使用Hex Editor,sublime等工具打开),内容如下(内容是16进制): 开头的4个字节 代表的是魔数 它的唯一作用是确定这个文件是否是一个能被虚拟机接收的Class文件。后面4个字节代码的是使用的jdk版本号。其中前2个字节代码次版本号,后面2个字节代码 阅读全文
posted @ 2020-07-06 17:56 习惯1991 阅读(388) 评论(0) 推荐(1) 编辑
摘要: 1.JDK、JRE与JVM的关系 2.字节码和机器码的区别 机器码是电脑CPU直接读取运行的机器指令,运行速度最快,但是非常晦涩难懂,也比较难编写,一般从业人员接触不到。 字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。 3.OracleJDK和OpenJDK 查 阅读全文
posted @ 2020-07-06 09:54 习惯1991 阅读(319) 评论(0) 推荐(0) 编辑