当前位置: 技术问答>java相关
请问在类中的{ //do something// }和static { //do something//}有什么区别啊?
来源: 互联网 发布时间:2015-03-06
本文导语: | static{}是静态初始化块,在类被ClassLoader装载时执行1次(故一般只被执行1次) {}是非静态初始化块,每产生一个该类的实例,就被执行1次(故一般被执行多次) | static标注的代码块在类开始时执行,所以sta...
|
static{}是静态初始化块,在类被ClassLoader装载时执行1次(故一般只被执行1次)
{}是非静态初始化块,每产生一个该类的实例,就被执行1次(故一般被执行多次)
{}是非静态初始化块,每产生一个该类的实例,就被执行1次(故一般被执行多次)
|
static标注的代码块在类开始时执行,所以static代码块对应的类只有一个,而一般的代码在类的每次初始化时都生成,比如static A1 和A2都放在CLASS TEST中,当两次执行new TEST()时,A1只生成一次,并且数据共享,而A2则生成两个,分别对应TEST的两个instance。
不知道我说清楚了没有。。。
不知道我说清楚了没有。。。
|
static{}里面的东西最先执行,如果放在static main()前,则在main()前执行,
如果不实例化,{}里的东西不执行。
如果不实例化,{}里的东西不执行。