美文网首页
JVM 类加载机制

JVM 类加载机制

作者: G先生_海林 | 来源:发表于2018-11-12 12:37 被阅读7次

**JVM类加载分为5个过程:加载,验证,准备,解析,初始化,使用,卸载,如何是要分三步的话为,

加载-链接-初始化

1.加载,jvm 将从不同的地方把字节码文件加载到内存中,比如.class jar包里面的,还可以从网络上加载进来,并转化成jvm 认可的数据结构,在这个阶段我们也可以实现自己的类加载器,实现特定的功能

2.链接 ,链接就是将jvm 类型的原始定义成功的转入到jvm 的执行过程中,包括,验证,准备,解析,验证表示jvm 加载进来的字节码是否符合java规范,这一步方式恶意代码被加载进来,包含jvm虚拟机。验证阶段会根据类的的依赖关系加载更多的类,准备,准备阶段是正式为类变量分配内存并设置类变量初始值的阶段,这些变量所使用的内存都将在方法区中进行分配,这时候进行内存分配的仅包括类变量(被static修饰的变量),而不包括实例变量,实例变量将会在对象实例化时随着对象一起分配在堆中。其次,这里所说的初始值“通常情况”下是数据类型的零值,假设一个类变量的定义为:

public static int value=123;

那变量value在准备阶段过后的初始值为0而不是123.因为这时候尚未开始执行任何java方法,而把value赋值为123的putstatic指令是程序被编译后,存放于类构造器()方法之中,所以把value赋值为123的动作将在初始化阶段才会行。至于“特殊情况”是指:public static final int value=123,即当类字段的字段属性是ConstantValue时,会在准备阶段初始化为指定的值,所以标注为final之后,value的值在准备阶段初始化为123而非0.
解析,解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程。解析动作主要针对类或接口、字段、类方法、接口方法、方法类型、方法句柄和调用点限定符7类符号引用进行。

3.初始化 可以理解为各种赋值和初始化动作,静态变量,静态代码块。

jvm 加载类的方式使用的是双亲委派模型
就是jvm 在加载java类的时候,先给父类加载器过目一下,如果父类说加载不了,就由下面的类一级一级的过目,直到可以加载为止,这样做的目的是为了防止,一个类被重复加载,jre 中内置了三种类加载器,满足了大部分的业务需求,位于最顶层的是启动类加载器,扩展类加载器,应用类加载器。

启动类加载器主要加载,jre/lib 下面的jar包,
扩展类加载器主要加载,jre/lib/ext 下面的jar包
应用类加载器主要加载,classpath 下的类文件。

如下图所示:**

类加载流程.png

相关文章

  • JVM——类加载机制

    前言 今天就来介绍类的加载机制以及双亲委派机制。 JVM 类加载机制 JVM 类加载的五个阶段 JVM 类加载机制...

  • JVM类加载学习二-类加载机制学习

    JVM类加载机制 @(Java)[JVM|类文件结构] [TOC] 基本介绍 JVM的类加载机制:JVM把描述类的...

  • JVM——类加载机制

    JVM类加载机制 JVM类加载机制是通过类加载器ClassLoader来将.class文件加载到内存中,以便调用....

  • 类加载机制(一)

    加载机制系列类加载机制(一)类加载机制(二)类加载机制(三) 类加载机制 1.JVM把class文件加载到内存,对...

  • java类加载机制、类加载器、自定义类加载器

    java类加载机制、类加载器、自定义类加载器 类加载机制 java类从被加载到JVM到卸载出JVM,整个生命周期包...

  • Java——JVM篇——收藏系列来啦(终结篇)

    转自:Java——JVM篇——收藏系列来啦(终结篇)侵删。 2.9.JVM 类加载机制 JVM 类加载机制分为五个...

  • 类加载机制

    类加载机制 类加载机制是指 .class文件加载到JVM,并形成Class对象的机制。 类加载机制可以在运行时动态...

  • JVM类加载机制

    这节主要从覆盖JDK的类开始学习JVM的类加载机制。Java和JVM的类加载机制类似,但JVM的类加过程稍有些复杂...

  • 2020最新JAVA核心面试知识整理283页(带详解)

    部分目录预览 部分内容预览 JVM 类加载机制 JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下...

  • JAVA类加载机制

    jvm之java类加载机制和类加载器(ClassLoader)的详解java类加载机制:全盘负责、双亲委派、缓存机...

网友评论

      本文标题:JVM 类加载机制

      本文链接:https://www.haomeiwen.com/subject/yapgxqtx.html