美文网首页
简单讲讲类的加载机制

简单讲讲类的加载机制

作者: 探索的影子 | 来源:发表于2021-05-22 16:18 被阅读0次

简单讲讲类的加载机制

理论

首先得说类的加载机制。从java文件从到内存里面经历了几个过程。

  1. 加载

    Java文件首先编译成class文件(字节码文件),通过io的方式读入文件。这个加载过程需要程序第一次使用的时候才会加载。如main方法,new对象等等。并且同时会生成一个Java.lang.Class的对象,作为方法区这个类的各种数据访问入口。

  2. 验证

    检验字节码文件是否合法。

  3. 准备

    给静态变量设置默认值,静态常量直接进行赋值。

  4. 解析

    将符号引用改为直接引用。如静态方法main会直接替换成内存所在的指针或者句柄等。这就是静态链接。动态链接是在程序的运行过程中将符号引用才替换成直接引用。

  5. 初始化

    根据程序员通过程序制定的主观计划去初始化类变量和其他资源。

    编译器收集的顺序是由语句在源文件中出现的顺序决定的,静态语句块中只能访问到定义在静态语句块之前的变量,而定义在它之后的变量,在前面的静态语句块可以赋值,但不能访问。

    private static String a = "默认值";
    
    static {
        a="新字符串";
        System.out.println(a);
    }
    

    这个打印是可以使用的。

    但是如下这部分代码就会发现编译器会提示error向前调用。Illegal forward reference

static {
        a="新字符串";
        System.out.println(a);
    }

private static String a = "默认值";
image-20210522105528552

初始化方法执行的顺序,虚拟机会保证在子类的初始化方法执行之前,父类的初始化方法已经执行完毕,因此在虚拟机中第一个被执行的类初始化方法一定是java.lang.Object。

图例
image-20210522115324605

相关文章

  • 简单讲讲类的加载机制

    简单讲讲类的加载机制 理论 首先得说类的加载机制。从java文件从到内存里面经历了几个过程。 加载Java文件首先...

  • 类加载机制(一)

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

  • 类加载机制(三)

    加载机制系列类加载机制(一)类加载机制(二)类加载机制(三)类加载器 这里引用尚学堂的的几张图片 demo: 结果:

  • JVM——类加载机制

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

  • 类加载机制(二)

    加载机制系列类加载机制(一)类加载机制(二)类加载机制(三)类的加载全过程中的主动引用与被动引用 类的主动引用(会...

  • 面试官,不要再问我“Java虚拟机类加载机制”了

    关于Java虚拟机类加载机制往往有两方面的面试题:根据程序判断输出结果和讲讲虚拟机类加载机制的流程。其实这两类题本...

  • 类加载机制

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

  • 从萌新的角度理解Java类加载机制

    类加载机制 本文主要是对java中类加载机制的入门级别文章,主要介绍类加载机制基本概念,以及类加载机制主要内容。本...

  • 从类加载开始的JVM学习

    目录 引言 java类加载流程 java类加载机制- 类加载原理- 双亲委派机制 Tomcat中双亲委派机制的应用...

  • java基础知识,JVM虚拟机类加载机制

    知识要点: 类加载机制简介 类加载机制流程 类加载机制简介 虚拟机把描述类的数据从Class文件加载到内存,并对数...

网友评论

      本文标题:简单讲讲类的加载机制

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