如何实现类加载的详细过程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1369个文字,预计阅读时间需要6分钟。
加载---->连接(验证--->准备--->解析)------>初始化:+加载即是将类的二进制字节码载入JVM中、将字节流代表的静态存储结构转化为方法区的运行时数据结构、在堆中生成一个java对象
加载-----连接(验证---准备---解析)------初始化:
-
加载就是 将类的二进制字节码载入JVM中、将这个字节流代表的存储静态存储结构转化为方法区的运行时数据结构、在堆中生成一个java.lang.Class 对象,表示堆方法区中类的引用
-
验证就是验证加载进来的类是不是对jvm有害。文件格式验证(在类装载过程)、元数据验证(在准备的那一步用到了元素据)、字节码验证(贯穿流程)、符号引用验证(贯穿流程)。这四个验证并不是严格按照这个顺序走下来的,是贯穿整个流程的过程。
-
准备就是对静态变量与常量设置默认值。为类的静态变量分配内存并赋值,当前类型的默认值。
-
解析就行将类中的符号引用(是一些描述信息比如字段、方法,因为在文件中我们没办法描述他是这个字段,也不能指向真实内存。
本文共计1369个文字,预计阅读时间需要6分钟。
加载---->连接(验证--->准备--->解析)------>初始化:+加载即是将类的二进制字节码载入JVM中、将字节流代表的静态存储结构转化为方法区的运行时数据结构、在堆中生成一个java对象
加载-----连接(验证---准备---解析)------初始化:
-
加载就是 将类的二进制字节码载入JVM中、将这个字节流代表的存储静态存储结构转化为方法区的运行时数据结构、在堆中生成一个java.lang.Class 对象,表示堆方法区中类的引用
-
验证就是验证加载进来的类是不是对jvm有害。文件格式验证(在类装载过程)、元数据验证(在准备的那一步用到了元素据)、字节码验证(贯穿流程)、符号引用验证(贯穿流程)。这四个验证并不是严格按照这个顺序走下来的,是贯穿整个流程的过程。
-
准备就是对静态变量与常量设置默认值。为类的静态变量分配内存并赋值,当前类型的默认值。
-
解析就行将类中的符号引用(是一些描述信息比如字段、方法,因为在文件中我们没办法描述他是这个字段,也不能指向真实内存。

