Java之注解和反射学习笔记九 —— 类加载内存分析

Java之注解和反射学习笔记九 —— 类加载内存分析


参考教程B站狂神https://www.bilibili.com/video/BV1p4411P7V3


Java内存

Java之注解和反射学习笔记九 —— 类加载内存分析_第1张图片

类的加载过程

Java之注解和反射学习笔记九 —— 类加载内存分析_第2张图片

类的加载与ClassLoader的理解

Java之注解和反射学习笔记九 —— 类加载内存分析_第3张图片

代码测试

package pers.ylw.reflection;

public class Test05 {
    public static void main(String[] args) {
        A a = new A();
        System.out.println(a.m); //100

        /*
        1.加载到内存,会产生一个类对应的class对象
        2.连接,连接结束后 m = 0
        3.初始化,执行
            (){
                System.out.println("A类静态代码块初始化");
                m = 300;
                m = 100;
            }
           所以得到的 m = 100
         */
    }
}

class A{
    static {
        System.out.println("A类静态代码块初始化");
        m = 300;
    }
    static int m = 100;

    /*
    * 准备阶段 m = 0
    * m = 300
    * m = 100
    * */

    public A(){
        System.out.println("A类的无参构造初始化");
    }
}

在这里插入图片描述

你可能感兴趣的:(javaSE)