当前位置: 代码迷 >> J2SE >> 类加载和初始化顺序,谢谢帮忙看看
  详细解决方案

类加载和初始化顺序,谢谢帮忙看看

热度:107   发布时间:2016-04-24 12:32:10.0
类加载和初始化顺序,多谢帮忙看看

public class Singleton {
  private static Singleton single = new Singleton();
  private static int counte1; 
  private static int counte2 = 0; 
  private Singleton() {  
counte1++;
counte2++;
  }
   
  public static Singleton getInstance() {
return single;
  }
   
  public static void main(String[] args) {
Singleton obj = Singleton.getInstance();
System.out.println("Counte1=" + obj.counte1);
System.out.println("Counte2=" + obj.counte2);
  }
}

请问为什么不是Counte1=null,counte2=null.它是private,这里构造器能进行调用吗?我觉得不能,如果把new Singleton()放在private Singleton()中应该才可以.能跟我讲讲初始化的顺序和private关键字指得的外部是那些,是除了类本身外吗,谢谢各位能回答!

------解决方案--------------------
初始化顺序:
父类--静态变量 
父类--静态初始化块 
子类--静态变量 
子类--静态初始化块 
父类--变量 
父类--初始化块 
父类--构造器 
子类--变量 
子类--初始化块 
子类--构造器 

------解决方案--------------------
探讨
初始化顺序:
父类--静态变量
父类--静态初始化块
子类--静态变量
子类--静态初始化块
父类--变量
父类--初始化块
父类--构造器
子类--变量
子类--初始化块
子类--构造器

------解决方案--------------------
探讨
这里答案是1,0;怎么不是1,1呢?

------解决方案--------------------
探讨
这里答案是1,0;怎么不是1,1呢?
  相关解决方案