类加载的时机:类从被加载到虚拟机内存开始、到卸载为止、它的整个生命周期包括:加载(loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段其中验证、准备、解析3个部分统称为链接(Linking)。
镶黄网站制作公司哪家好,找
创新互联公司!从网页设计、网站建设、微信开发、APP开发、
成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。
创新互联公司公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选
创新互联公司。
有5种情况必须对类进行初始化
遇到new对象,类的静态字段
对类进行反射调用
父类没初始化
虚拟机启动时用户需要指定一个要执行的主类
加载:1.通过类的全限定名来获取定义此类的二进制字节流
2.将字节流所代表的静态存储结果转化为方法区的运行时数据
3.在内存中生成一个代表这个Class对象,作为方法区作为这个类的各种数据的访问入口
验证:验证时连接的第一个阶段保证Class文件字节流包含的信息符合当前虚拟机的要求不会危害虚拟机自身的安全。
准备:正式为类变量分配内存并设置类变量初始值阶段这时候内存分配仅包括被static修饰的变量不包括实例变量。
解析:虚拟机将常量池的符号引用替换为直接引用(可以直接指向目标的指针)类或接口解析字段解析和类方法解析。
初始化:初始化5中情况
类加载器:启动类加载器C++实现负责lib 目录JVM识别的jar
扩展类加载器libext目录类库
应用类加载器负责ClassPath上的类库
以上就是小编对于虚拟机加载机制的详细介绍。
网站题目:虚拟机的加载机制详解
文章转载:
http://jkwzsj.com/article/chcgep.html