分析类加载的链接阶段-准备 属性是如何处理的

//类加载-准备阶段
public class classLoad02 {
    public static void main(String[] args) {
        A a = new A();
        a.B();

    }
}

class A{
    //属性-成员变量-字段
    //分析类加载的链接阶段-准备  属性是如何处理的
    //1.n1是实例属性,不是静态变量,因此在准备阶段,是不会分配内存的
    //2.n2是静态变量,分配内存  n2  是默认初始化 0,而不是20
    //3.n3是static final 是常量,它和静态变量不一样,因为一旦赋值就不变 n3=30
    public int n1=10;
    public static int n2=20;
    public static final int n3=30;

    public void B(){
        n1=100;
        n2=200;
        //n3=300;会报错,有final不能赋值
        System.out.println(n1+"  "+n2);
    }

}

  结果:100       200

posted @ 2021-06-22 12:35  小jun学java  阅读(45)  评论(0)    收藏  举报