在这里,我曾经有些疑惑那就是字节码和二进制文件。其实都是.class文件,我们简单编译一下上述的Main.java
Tips:加载阶段,我们可以自定义类加载器,去实现自己的类加载过程。2、连接
连接和加载过程是交叉进行的,也就是说加载阶段没有完成,连接阶段可能就已经开始了。第二阶段是连接 ,这是核心的步骤,简单说是把原始的类定义信息平滑地转化入JVM运行的过程中。这里可进一步细分为三个步骤:
常量池:常量池里除了String对象,final类型的常量,还有符号引用。符号引用:用于描述字节码文件中各字段,各方法、各接口等。我是这么理解的:如果字段、方法都是想象想要旅游的游客的话,那么符号引用就是旅游公司,但是旅游公司只负责收钱组织游客,他们不负责真正带游客出去玩,真正带他们去玩的是导游(直接引用)。也就是说符号引用就是一个能够代表所有字段、方法的这么一个角色。直接引用:直接引用想到于能够找到对应内存地址的角色,也就是上述例子中的导游。
PS:不知道这么解释能不能理解解析的过程,如果还是迷糊,可以查看知乎大佬对此的专业回答:https://www.zhihu.com/question/303005853、初始化最后是初始化阶段 , 这一步开始执行静态字段赋值的动作,静态初始化块内的逻辑,编译器在编译阶段就已经把该执行的代码逻辑整理好了,这里需要注意的是:父类的初始化逻辑优先于子类的逻辑。
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |