标签:结果 赋值 静态 out test 错误 public 过程 pre
---面试题
class SingleTon { private static SingleTon singleTon = new SingleTon(); public static int count1; public static int count2 = 0; private SingleTon() { count1++; count2++; } public static SingleTon getInstance() { return singleTon; } } public class Test { public static void main(String[] args) { SingleTon singleTon = SingleTon.getInstance(); System.out.println("count1=" + singleTon.count1); System.out.println("count2=" + singleTon.count2); } }
要求写出打印结果:
这题牵扯打类的加载,首先分析:
所以正确答案是;
count1=1
count2=0
其实 类从被加载到虚拟机内存中开始,直到卸载出内存为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用和卸载这7个阶段。
这道题的关键就是在于类在初始化的时候是先给构造方法中的属性赋值,还是类在初始化(类加载过程的最后一步)的时候赋值。
标签:结果 赋值 静态 out test 错误 public 过程 pre
原文地址:http://www.cnblogs.com/zhangyu0217----/p/7625548.html