Java中静态初始化块、初始化块和构造方法的执行过程

http://advance0683.iteye.com/blog/1107653

Java中静态初始化块、初始化块和构造方法的执行过程

例子:

Java代码

    packageclassmate;publicclassTeam{publicstaticvoidmain(String[]args){Personp=newPerson();System.out.println("——————————");Personp1=newPerson();}}classPerson{//构造方法publicPerson(){System.out.println("PersonConstructor…");}//初始化代码块{System.out.println("PersonInitializationBlock…");}//静态代码块static{System.out.println("PersonStaticBlock…");}}

运行结果:

Java代码

    PersonStaticBlock…PersonInitializationBlock…PersonConstructor…——————————PersonInitializationBlock…PersonConstructor…

当创建第一个Person对象p的时候,执行顺序应该是 静态代码块 > 初始化代码块 > 构造方法,但是当创建第二个Person对象p1的时候,执行顺序就变成了 初始化代码块 > 构造方法。原因很简单,因为静态代码块只会在类第一次装入系统中才会执行,以后类在装入系统的时候,它就不执行了。

告诉自己,我这次失败了,

Java中静态初始化块、初始化块和构造方法的执行过程

相关文章:

你感兴趣的文章:

标签云: