好贷网好贷款

Java Object Initialization

发布时间:2016-12-5 16:31:53 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Java Object Initialization",主要涉及到Java Object Initialization方面的内容,对于Java Object Initialization感兴趣的同学可以参考一下。

public class InitializeDemo { private static int k = 1; private static InitializeDemo t1 = new InitializeDemo("t1"); private static InitializeDemo t2 = new InitializeDemo("t2"); private static int i = print("i"); private static int n = 99; static { print("Static Module"); } private int j = print("j"); { print("Constructive Module"); } public InitializeDemo(String str) { System.out.println((k++) + ":" + str + " i=" + i + " n=" + n); ++i; ++n; } public static int print(String str) { System.out.println((k++) + ":" + str + " i=" + i + " n=" + n); ++n; return ++i; } public static void main(String args[]) { new InitializeDemo("init"); } } Output is: 1:j   i=0    n=0 2:Constructive Module   i=1    n=1 3:t1   i=2    n=2 4:j   i=3    n=3 5:Constructive Module   i=4    n=4 6:t2   i=5    n=5 7:i   i=6    n=6 8:Static Module   i=7    n=99 9:j   i=8    n=100 10:Constructive Module  i=9    n=101 11:init   i=10    n=102 Principles: 1.静态属性和静态代码块都是在类加载的时候初始化和执行, 两者的优先级别是一致的, 且高于非静态成员, 执行按照编码顺序。 2.非静态属性和匿名构造器在所有的构造方法之前执行, 两者的优先级别一致, 执行按照编码顺序。 3.以上执行完毕后执行构造方法中的代码。 (静态属性=静态代码块)> (非静态属性 = 构造块)> 构造方法 Summary: 1.静态只在类加载的时候执行,且仅执行一次。 2.非静态只在实例化的时候执行,且每次实例化都执行。 3.静态在非静态之前执行。 4.静态属性和静态块的执行顺序取决于编码顺序,对它们一视同仁。 5.非静态属性和构造块的执行顺取决于编码顺序,对它们也一视同仁。 6.最后执行构造方法。

上一篇:chkconfig命令
下一篇:书目记录

相关文章

相关评论