java 执行顺序

发布时间:2016-12-11 20:29:47 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"java 执行顺序",主要涉及到java 执行顺序方面的内容,对于java 执行顺序感兴趣的同学可以参考一下。

public class Test {                                                                  行1 public static Test t = new Test("a");                             行2 public int i = print(2);                                                       行3 {                                                                                         行4     System.out.println("构造块");                                  行5 }                                                                                         行6 public Test(String str){                                                  行7 System.out.println("构造块"+str);                        行8 }                                                                                        行9 static                                                                                 行10 {                                                                                         行11     System.out.println("静态块");                                  行12 }                                                                                        行13 public static int print(int i){                                           行14 System.out.println("print: "+i);                             行15 return i;                                                                    行16 }                                                                                        行17 public static void main(String args[]){                       行18          Test t=new Test("b");                                                   行19     }                                                                                            行20 }                                                                                                行21 结果: print: 2      (结果:1) 构造块       (结果:2) 构造块a    (结果:3) 静态块      (结果:4) print: 2      (结果:5) 构造块      (结果:6) 构造块b    (结果:7) 如果没有 行19  结果1-4 会输出,因为java 在对代码进行编译的时候,对静态代码进行初始化。 当调用new创建对象时,会先初始化class非静态变量,然后调用本类构造方法,所以在初始化 t 时,先调用print方法初始化非静态变量i,然后每次调用构造方法,都会先调用 构造块  代码,然后调用静态块(只调用一次)。 执行顺序:静态块 构造块 非静态变量 构造函数 对于静态块和静态属性或者非静态块和属性,初始化顺序决定于它们在代码中的顺序。

上一篇:《Sparse and Redundant Representations》第十章 图像去噪——案例研究
下一篇:转自 http://blog.chinaunix.net/uid-23392298-id-3322769.html

相关文章

关键词: java 执行顺序

相关评论