class Singleton {

private static Singleton instance = new Singleton();


public static int a;


public static int b=0;

private Singleton() {


a++;


b++;


}

public static Singleton getInstance() {


return instance;


}

}

public class MAINTEST {


public static void main(String[] args) {


Singleton singleton = Singleton.getInstance();


System.out.println("a=" + singleton.a);


System.out.println("b=" + singleton.b);


}

}

public class MAINTEST {

public static void main(String[] args) {


Singleton singleton = Singleton.getInstance();


System.out.println("a=" + singleton.a);


System.out.println("b=" + singleton.b);


}

}

class Singleton {
public static int a;
public static int b=0;
private static Singleton instance = new Singleton();

private Singleton() {
a++;
b++;
}

public static Singleton getInstance() {
return instance;
}
}

public class MAINTEST {
public static void main(String[] args) {
Singleton singleton = Singleton.getInstance();
System.out.println("a=" + singleton.a);
System.out.println("b=" + singleton.b);
}
}

分析:

1.类的入口从main函数开始,当程序已启动,首先要调用第19行的代码,这个时候调用了类的静态方法(这时候,类开始初始化)

2.当类开始初始化的时候,所有的静态变量会被初始化成默认值。

3.以第一个图来说,当初始化完毕类的静态变量后,开始加载类,这个时候是按照顺序往下解析的。

4.当执行第二行的new Singleton的时候,会调用构造方法,这个时候,a和b都变成了1

5.当程序执行到第三行的时候,a还是1

6.当程序执行到第四行的时候,b变成了0

7.所以输出1和0

图二自己就可以理解了。

最新文章

  1. beanstalkd----协议
  2. URAL 1244. Gentlemen(DP)
  3. ios-WKWebView 拨打电话
  4. ZooKeeper学习第七期--ZooKeeper一致性原理
  5. [Ogre][地形][原创]基于OgreTerrain的地形实现
  6. 树状数组求逆序对:POJ 2299、3067
  7. Linux下判断cpu物理个数、几核
  8. WordPress Pie Register插件‘wp-login.php’多个跨站脚本漏洞
  9. 基于PHP的地址清洗调用案例-快宝开放平台
  10. [Linux][转载]Curl命令详解
  11. js_2_逻辑分支
  12. 关于SQL 导出脚本失败 及SQL 的重装
  13. swift 自动布局设置 tableview 的 tableHeaderView 的高度
  14. span<T>之高性能字符串操作实测
  15. css,响应鼠标事件,文字变色
  16. Django 学习 (第五部)
  17. Java之旅_面向对象_抽象类
  18. Redis--redis集群环境搭建
  19. linux修改yum本地源的方法
  20. python可变容器类型做函数参数的坑

热门文章

  1. JS时间戳比较大小:对于一组时间戳(开始时间~结束时间)和另一组时间戳进行比较,用于判断被比较时间戳组是否在要求范围内
  2. javascript and dom1
  3. tomcat源代码Catalina
  4. ReSharper C++计划上市
  5. 解决Postman发送post数据但是Node.js中req.body接收不到数据的问题[已解决]
  6. leetcode第七题--Reverse Integer
  7. 激活windows server 2012 R2的方法
  8. 代码审查 (Google牛人谈Code Review)
  9. TodoList开发笔记 – Part Ⅳ
  10. div高度自适外层div高度随里层div高度自适