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

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

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

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

动态加载和动态连接

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


类加载机制。

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

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

主动引用。

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

【2】 反射reflect的时候

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

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

被动引用。

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

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


什么是加载。

虚拟机做3件事。

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

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

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


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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容