类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用、卸载共7个阶段。
加载、验证、准备、初始化和卸载这5个阶段顺序是一定的,类的解析阶段则不一定。
验证、准备、解析均属于类加载阶段的连接阶段。
1、类加载的过程
加载阶段是类加载过程的一个阶段,不要被混淆,在加载阶段需完成:
1)通过一个类的全限定名来获取定义此类的二进制字节流。
2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。
3)在Java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口。
2、验证
是连接阶段的第一步,确保Class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身的安全。
3、准备
正式为类变量分配内存并设置类变量初始化的阶段,这些内存将在方法区进行分配。进行内存分配的仅包含类变量(被static修饰的变量),而不包括实例变量,实例变量将会在对象实例化时随着对象一起分配到Java堆中。这里的初始值“通常情况”是数据类型的零值。真正的赋值应该在初始化阶段才会被执行。
4、解析
此阶段是虚拟机将常量池中的符号引用替换为直接引用的过程。
符号引用--转变为-->直接引用。
5、初始化
到了这阶段,才真正执行类中定义的Java程序代码(或者说是字节码)。
在准备阶段已经赋过一次系统要求的初始值,而在初始化阶段,则是根据程序员通过程序制定的主观计划去初始化类变量和其他资源。
初始化阶段是执行类构造器<clint>()方法的过程。
6、使用(略)
7、卸载(略)
分享到:
相关推荐
weblogic类加载过程简述weblogic类加载过程简述weblogic类加载过程简述weblogic类加载过程简述weblogic类加载过程简述weblogic类加载过程简述
JVM类加载过程
java类加载过程详解
springboot 类加载过程,源码分析
Java类加载流程(双亲委派)流程图.zip
Java虚拟机类加载顺序,Java虚拟机类加载顺序,Java虚拟机类加载顺序
如果这个类存在直接父类,并且这个类还没有初始化(**在一个类加载器中,类只能被初始化一次**),那就先初始化直接父类(不适用于接口)。 3. 加入类中存在的初始化语句(如static变量和static块),那就先执行...
这里可进一步细分为三个步骤:极客时间 | Java核心技术36讲验证(Verification),这是虚拟机安全的重要保障,JVM 需要核验字节信息是符合 Ja
T8.3_类加载过程 java 经典教程 经典教材
1.编写个向接的应程序,可能等到运时再指定其实现的类 2.户可以定义个类加载器,让程序在运时从络或其他地加载 1.加载:(重点) 1.通过“类全名”来获取定义此
该文件是JVM中关于类加载机制的知识整理的思维导图,包括类加载机制概述、类加载的生命周期、加载时机、加载过程、类加载、类的初始化和实例化等几个大方面进行了讲解,其中类加载中还对JVM三种预定义类加载器进行了...
主要介绍了JVM的类加载过程以及双亲委派模型详解,类加载器就是根据指定全限定名称将 class 文件加载到 JVM 内存,然后再转化为 class 对象。,需要的朋友可以参考下
02 类加载子系统 PPT 介绍 JVM 的类加载子系统, 包括类加载阶段和流程、加载器分类和类加载机制等。
1. 加载(Loading):classpath,jar包,网络,磁盘位置下的类的class以二进制字节流读进来,在内存 2. 验证(Verification)
Java虚拟机----类的加载过程.docx
什么是虚拟机类加载机制以及加载过程,以及类加载时机
主要介绍了Java中类加载过程全面解析,具有一定参考价值,需要的朋友可以了解下。
java的类加载机制,类加载顺序,类加载的体系结构,类加载过程,双亲委派模型及机制等相关内容。做架构师或者高级开发,类加载是必须要掌握的内容。
1 类加载过程图解 系统加载Class类型的文件主要是:加载->连接->初始化,其中连接分为:验证->准备->解析;其实,整个生命周期是7步,类从被加载到虚拟机内存中开始,到卸载出内存为止,分为:加载->验证->准备...