1.首先要明白构造代码块是将所有构造函数的共性放于构造代码块中,所以其是优先于构造函数执行。即构造代码块的优先级大。
2.对于Static{} 静态代码块,当加载类的过程中,Static静态代码块就会执行,static的静态代码块对于同一个类只加载一次,如new person();new person();只会加载一次静态代码块,与抽取的共性的构造代码块有所区别。
3.我给出了具体执行顺序,代码块的优先执行顺序为:Static{}静态代码块 (类加载过程就会执行一次)>构造代码块(原因是当产生对象时才会调用)>构造函数,static优先于主函数执行,因为它随着类的加载而加载,而主函数需要调用。
|