静态代码块 >静态属性初始化>静态属性赋值>构造代码块>实例属性初始化>实例属性赋值>构造函数
这些是类中的加载中完成的顺序
是先 执行这个static { System.out.println("staticc code i="+i++);}
但是,注意 你这个是i++; 它是先赋值,后加1. 所以输出5,之后5++=6;这时i=6.
在执行System.out.println("main code: i="+ A.i); 输出6
你把i++改成++i, i先自加再赋值 结果你就会明白了- class A{
- static int i=5;
- static { System.out.println("staticc code i="+(++i));}
- }
- public class Test{
- public static void main(String args[]){
- System.out.println("main code: i="+ A.i);
- }
- }
复制代码 |