随笔-生活工作点滴

类加载机制

2019-07-04  本文已影响0人  eliteTyc

java类加载的全过程包含5个步骤:

各过程具体完成的操作

1.加载
加载阶段需要完成三个操作:1).通过一个类的全限定名来获取该类的二进制字节流 2).将这个字节流所代表的静态存储结构转换为方法区的运行时数据结构 3).在内存中生成该类的Class对象(虽然是一个对象,但是不放在堆内存,放在方法区),作为方法区该类的各种数据的访问入口
2.验证:
验证是连接的第一个阶段,验证是非常重要的,这个阶段是否严谨,直接决定了java虚拟机能否承受恶意代码的攻击,如果不经历验证阶段,如果载入了有害的字节流,很可能会导致系统直接崩溃
验证有以下4个验证动作:

3.准备
准备是正式为类变量(被static修饰的变量)分配内存和赋初始值的阶段,这些变量使用的内存都在方法区中分配(此时只是对被static修饰的变量赋值,实例变量将在对象实例化的时候一起分配在堆中)
4.解析:
解析是虚拟机将常量池内的符号引用转为直接引用的过程
解析针对7类符号进行

5.初始化
初始化是类加载过程的最后一步,在初始化阶段才是真正执行类中的java程序代码,在准备阶段变量已经赋值了初始值,初始化阶段再按照程序员的意愿去进行赋值其他

上一篇 下一篇

猜你喜欢

热点阅读