class SingleTon {
private static SingleTon singleTon = new SingleTon();
public static int count1;
public static int count2 = 1; 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);
}
}

执行结果:singTon.count1=1  singTon.count2=1

class SingleTon {
public static int count1;
public static int count2 = 1;
private static SingleTon singleTon = new SingleTon(); private SingleTon() {
count1++;
count2++;
} public static SingleTon getInstance() {
return singleTon;
}
} public class Demo {
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=2

 private static SingleTon singleTon = new SingleTon();  这句代码再static int ...之前只影响未被赋值的变量,在static int...之后,全部影响

原因:实例的初始化流程

1.类被加载的时候,普通方法加载到方法区,静态方法和静态字段加载到方法区中的静态区

2.首先静态字段会进行默认初始化。即 singTon=null       count1=0        count2=0

3.然后静态字段会进行显示初始化。问题就出现这里(这里就是影响结果的地方)

4(第一个例子先执行4).首先 singTon 进行显示初始化 它会创建 实例,调用构造函数,执行完成以后

5(第二个例子先执行5).然后才是静态变量 count1和count2进行显示初始化

6.然后执行静态代码块中的内容,此处没有静态代码块。

最新文章

  1. MapReduce剖析笔记之四:TaskTracker通过心跳机制获取任务的流程
  2. SQL的ROW_NUMBER函数
  3. SOLID rule in JAVA design.
  4. SSH服务器与Android通信(2)--Android客户端接收数据
  5. 获取SQLSERVER所有库 所有表 所有列 所有字段信息
  6. ffmpeg-20160325-snapshot-static-bin
  7. 3D 生物打印血管成功植入恒河猴体内
  8. Linux安全攻防笔记
  9. 基于AppCan MAS系统,如何轻松实现移动应用数据服务?
  10. xcode5.1 cocoapods报错
  11. ActionScript接收socket服务器发送来的数据
  12. 利用Linux系统函数alarm() 来检测计算机性能
  13. [Android学习笔记]View的draw过程学习
  14. 求n个逆元的O(n)算法
  15. String、StringBuilder和StringBuffer
  16. 《Python网络编程》学习笔记--UDP协议
  17. Spring揭秘 读书笔记 五 容器的启动
  18. jenkins 忘记用户名和密码
  19. js生成1-100不重复的随机数及生成10个1-100不重复的随机数
  20. VBA消息框

热门文章

  1. elastalert基本配置说明
  2. The Preliminary Contest for ICPC Asia Shenyang 2019 F. Honk's pool
  3. PAT 乙级 1091.N-自守数 C++/Java
  4. java.sql.SQLException: Access denied for user 'xxx'@'localhost' (using password: YES)
  5. 08-C#笔记-判读语句
  6. Scrapy的中间件(二)
  7. date命令的FORMAT中输入空格的几种方法
  8. 【组合数学】【P5520】[yLOI2019] 青原樱
  9. 【数位DP】【P4127】[AHOI2009]同类分布
  10. 【LG4397】[JLOI2014]聪明的燕姿