读书人

静态加载顺序种static变量也有默认值

发布时间: 2013-09-25 11:02:59 作者: rapoo

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

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");}}

读书人网 >C++

热点推荐