黑马程序员技术交流社区
标题:
请问实例代码块和static 代码块有什么区别?
[打印本页]
作者:
Twinboss
时间:
2013-8-21 23:13
标题:
请问实例代码块和static 代码块有什么区别?
今天在学习了实例代码块以及static 代码块,但是还是不怎么懂,请问,它俩之间都有什么区别啊?
都作用在什么地方?谢谢回复。。。
作者:
乖睡觉咯
时间:
2013-8-21 23:42
相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,
一般在代码块中对一些static变量进行赋值。
不同点:静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。
静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new
一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。
作者:
若相守た不离
时间:
2013-8-22 17:23
执行顺序,你可以参考下
01.public class Test{
02. public Test(){
03. System.out.println("构造方法被执行 5");
04. }
05.
06. {
07. System.out.println("实例代码块被执行 3"); //实例代码块
08. }
09.
10. private TestInstance ti = new TestInstance(); //实例变量
11.
12. private static TestInstance ti1 = new TestInstance(1); //静态变量
13.
14. static{
15. System.out.println("静态代码块被执行 2"); //静态代码块
16. }
17.
18. public static void main(String[] args){
19. new Test();
20. }
21.
22.}
23.
24.class TestInstance{
25. public TestInstance(){
26. System.out.println("实例变量被构造 4");
27. }
28.
29. public TestInstance(int i){
30. System.out.println("静态变量被构造 1");
31. }
32.}
作者:
若相守た不离
时间:
2013-8-22 17:24
顺序为12345
作者:
吴光新
时间:
2013-8-22 17:51
楼主以上回答能解决你的问题吗
作者:
Twinboss
时间:
2013-8-22 20:52
恩,谢谢,长知识了,嘿嘿
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2