静态加载顺序,类static变量也有默认值(不同于C++),普通成员变量直接赋值语句和非静态语句块的执行位置

来源:互联网 发布:冰川网络远征ol2论坛 编辑:程序博客网 时间:2024/04/28 18:30
package test;public class Shunxu {//加载类时,static语句顺序执行一次static int v;static int i = print("i");//i 自动默认值:0static Shunxu obj1 = new Shunxu("obj1");//没有递归加载类的问题static Shunxu obj2 = new Shunxu("obj2");int j = print("j");//构造函数之前Shunxu(String str){//先执行变量赋值j和非静态语句块{print("构造块");}System.out.println(str+" i="+i);}//构造函数之前{print("构造块");}static{print("静态块");}static int print(String str){System.out.println("i = "+i+" "+str);//不会有递归,i第一次有默认值0return ++i;}/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubShunxu test = new Shunxu("test");}}

原创粉丝点击