美文网首页Java 杂谈
jvm类加载机制 一

jvm类加载机制 一

作者: fkxuexi | 来源:发表于2018-07-27 09:59 被阅读3次

1、类加载的流程

image.png

2、各个阶段所干事的事情:

  • 2.1 加载:

1、通过类的全限定名来或者类的二进制字节流
2、将字节流的静态存储结构转换为方法区的运行时数据结构
3、在内存中生成java.lang.Class对象作为访问这个类的入口

  • 2.2 验证:

1、主要是验证是否符合class字节码的规范

  • 2.3 准备:

1、为类变量(静态变量)分配内存,并进行初始化(每个类型的初始值即每个类型的默认值,例如:int i=10 ,但此时的值是 0)

2、对于 final int i = 10,此时 i 的值为10

  • 2.4 解析:

1、将符号引用转换为直接引用的过程

  • 符号引用:用一段字符串来指向一个对象的引用,

  • 直接引用:直接指向内存地址的指针

  • 2.5 初始化:

1、为类的静态变量初始化,执行类构造器(类静态变量和静态代码块合并产生)

  • 假如这个类的直接父类还没有被初始化,则优先初始化父类
  • 假如类中还有初始化语句,那么先执行初始化语句

3、用一道面试题来结束这一章节的类容

class Parent{
    static {
        System.out.println("父类的静态代码块");
    }
    {
        System.out.println("父类的普通代码块");
    }
    public Parent(){
        System.out.println("父类的构造器");
    }
}
public class JvmLoadClassTest extends Parent{
    static {
        System.out.println("子类的静态代码块");
    }
    {
        System.out.println("子类的代码块");
    }
    public JvmLoadClassTest(){
        System.out.println("子类的构造器");
    }
    public static void main(String[] args) {
        JvmLoadClassTest test = new JvmLoadClassTest();
    }
}

为了大家可以更好的验证,我就直接把代码贴上来了,没有做成图片。

分析:

这里没有任何的变量,所以我们忽略前面的步骤,直接到初始化这一步来
1、如果还有父类没有初始化则初始化父类
2、如果还有初始化代码块,则执行初始化代码块
代码执行顺序的总结:父类静态代码块->子类静态代码块->父类普通代码块->父类构造器->子类普通代码块->子类构造函数
结果如下:


image.png

相关文章

  • JVM——类加载机制

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

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

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

  • 类加载机制(一)

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

  • JVM——类加载机制

    JVM类加载机制 JVM类加载机制是通过类加载器ClassLoader来将.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/hflwmftx.html