【笔记】深入理解 java 虚拟机---虚拟机的类加载机制

本来打算坚持每天一更的。中间有一天断了,这一断就是 2 周。 真的是可怕!!! 谨记,谨记。。。

什么是虚拟机的类加载机制?

虚拟机把描述class信息的文件加载到内存,效验,转化解析,初始化,将形成可以被虚拟机解析的java 类型。

动态加载和动态连接

指的是,java虚拟加相对与编译时需要连接的语言来说,java的烈性加载,连接,和初始化过程都是程序运行期间完成的。


类加载机制。

加载 ==》    连接 (验证 准备 解析)==》 初始化 ==》调用==》 卸载。

其中  解析的过程不一定是在 按顺序进行的。

主动引用。

【1】当字节码 遇到new getstatic putstatic invokestatic。

【2】 反射reflect的时候

【3】 初始化一个类,父类还没有初始化。

【4】虚拟机启动时,启动的那个主类。比如main。

被动引用。

【1】子类去调用父类的的静态字段,不会触发初始化。

【2】使用数组不会触发初始化。


什么是加载。

虚拟机做3件事。

【1】 通过类的全限定名 来获取一个二进制流。

【2】将流的静态存储结构转换成方法区的运行时数据结构。

【3】 在内存中生成一个 代表这个类的 class对象。作为方法区这个类的个个数据的入口。


强调 一下。 数组 不会触发加载,直接在虚拟机上创建。

你可能感兴趣的:(【笔记】深入理解 java 虚拟机---虚拟机的类加载机制)