类的静态块在类加载时候执行,执行早于构造函数,并且只执行一次。

下面这个例子可以帮助理解:

 package untility;

 public class A {
// 静态块
static {
A c ;
System.out.println(200);
c = new A();
i = 10;
} public static int i;
public int j; public A() {
System.out.println(A.i);
System.out.println(j);
} public static void main(String[] args) {
A a = null;
System.out.println(100);
a = new A();
//A b = new A();
}
}

运行结果:

200
0
0
100
10
0

解析:

程序从main方法进去,执行到21行代码加载类,然后执行static模块,继续执行到第6行,再次加载类,再次运行到static模块,此时第6行已经被执行过一次,所以不会再被执行(写完Java类的静态块の二发现这里的描述是有问题的,这里不会重复加载A类,只会重复往下执行第7行),然后执行第7行,所以第一个被打印出来是200,然后执行第8句的构造函数(没有执行到第9句,所以i和j都是0),打印出来2个0,然后继续执行static模块中的第9句,此时i=10,到此加载类完成,然后继续执行21行的=null语句,在执行22行的打印,输出100,最后执行第23行的构造函数,打印出来10 0(因为i是静态的)。

最新文章

  1. shell及脚本4——shell script
  2. Backbone源码学习之extend
  3. HP QR Code 实现二维码
  4. SQL Server 查看存储过程执行次数的方法
  5. Oracle中没有 if exists(...)
  6. [百度空间] [note] pointer to member is a POD type
  7. CXF+Spring 搭建的WebService
  8. 图片原理解说(综合版:JPEG,PNG,BMP,GIF)
  9. proxy 出现乱码问题解决 lua
  10. ZOJ 3329 One Person Game 带环的概率DP
  11. 异常处理与调试6 - 零基础入门学习Delphi55(完)
  12. dirty cow exp
  13. Android -- 仿小红书欢迎界面
  14. 深度学习之注意力机制(Attention Mechanism)和Seq2Seq
  15. html 网页背景图片根据屏幕大小CSS自动缩放
  16. CRM WEB UI 03搜索界面新建按钮调到详细界面
  17. MFC载入BMP图片
  18. 普通用户修改root密码【转】
  19. Google 推出新搜索引擎以查找数据集
  20. Debian+Pure-ftpd+MySQL+User manager for PureFTPd

热门文章

  1. 快速沃尔什变换(FWT)学习笔记 + 洛谷P4717 [模板]
  2. win7 第一次装 mysql-5.7.16-winx64 ,不知道root 密码,该如何处理?
  3. SQLite win7
  4. 方法名的string类型应用(补)
  5. 2.3-2.6 HBase java API
  6. CodeForces 496D Tennis Game (暴力枚举)
  7. Lua教程 loadfile与loadstring
  8. .net 反射构造你自己的“匿名”对象
  9. autoResizing autoLayout和sizeClass
  10. OSPF-1-OSPF的数据库交换(4)