JVM加载类过程
2018-01-16 10:31:50 1 举报
JVM类加载过程
作者其他创作
大纲/内容
类的加载:通过类名与包名获取class文件的二进制字节流
解析:将类中的符号引用直接转换成直接引用(编译期用com.huize.xx来替代,但是在解析过程中改为实际的物理地址)
JVM对类进行初始化的5种情况;1.new 对象,设置或者获取静态变量(除了常量池中的变量),调用静态方法;2.通过反射调用类3.初始化一个类时,先初始化父类4.虚拟机启动时,指定的包含main方法的类会先初始化;5.jdk1.7中,java.lang.invoke.MethodHandle最后实际执行的是获取,设置静态变量,调用静态方法。
在方法区生成一个java.lang.class的对象,用于调用方法区的此类数据
准备:为类的静态变量在方法区分配内存,初始值为0或null,对常量直接赋值
将class文件的静态结构转换成方法区的运行数据结构
验证:类是否有正确的数据结构,类数据是否符合虚拟机要求,并且不会危害虚拟机的安全
类的初始化:主要是为类的静态变量赋程序设置的值
类的加载过程
类的连接:将class的二进制数据合并入JRE中
0 条评论
下一页
为你推荐
查看更多