静态 例子

来源:互联网 发布:淘宝网首页舞蹈服装 编辑:程序博客网 时间:2024/06/04 19:44

.class 文件 通过类加载器 --》加载到jvm(jvm包括一套字节码指令集、一组寄存器、一个栈、一个垃圾
回收堆和一个存储方法域) JVM是Java程序运行的环境 


.class 文件中的
  静态属性 ,类中的方法 ,都放在jvm中的 栈中
  new的对象的属性值,属性的类型和对象本身的类型标记等 放于堆中


public class Test1 {


public static int a = 9;
static{
a = 10;
}

public static void main(String[] args) {
     System.out.println(a);
}

}

//输出结果是10

public class Test1 {

public static int a = 9;
public static int b = 12;
static{
a = 10;
}

public static void main(String[] args) {
     a = b;
     System.out.println(a);
}
}

//输出结果是12

个人理解:静态代码块,在类加载到jvm之前已经先执行,对于//输出结果是10理解,先执行静态代码块,因为在内存中已经为a分配了内存,且其值为10,当类在加载到jvm的时候,发现内存中已经存在a=10,此时加载进来的a=9,是不会去替换a=10,故输出结果为10


原创粉丝点击