Java 静态数据初始化的示例代码
无论创建多少个对象,静态数据都只占用一份存储区域。static关键字不能应用于局部变量,因此它只能作用于域。如果一个域是静态的基本类型域,且也没有对它进行初始化,那么它就会获得基本类型的标准初始值;如果它是一个对象引用,那么它的默认初始值就是null
classBowl{ publicBowl(intmarker){ System.out.println("Bowl("+marker+")"); } voidf1(intmarker){ System.out.println("f1("+marker+")"); } } classTable{ staticBowlbowl=newBowl(1); publicTable(){ System.out.println("Table()"); bowl2.f1(1); } voidf2(intmarker){ System.out.println("f2("+marker+")"); } staticBowlbowl2=newBowl(2); } classCupboard{ Bowlbowl3=newBowl(3); staticBowlbowl4=newBowl(4); publicCupboard(){ System.out.println("Cupboard()"); } voidf3(intmarker){ System.out.println("f3("+marker+")"); } staticBowlbowl5=newBowl(5); } publicclassStaticInit{ publicstaticvoidmain(String[]args){ //第三步 System.out.println("CreatingnewCupboardinmain"); //第四步 //因为Cupboard内的静态变量已经初始化完成,所以不再初始化(无论创建多少个对象,静态数据都是只占用一份存储区域) //但是里边的类成员变量bowl3还是需要进行二次初始化的,因为你这是new对象,所以打印Bowl(3) //然后调用该对象的无参构造函数,打印Cupboard() newCupboard(); //第五步 System.out.println("CreatingnewCupboardinmain"); //第六步 //和第四步一样,执行初始化,打印Bowl(3),然后调用无参构造函数,打印Cupboard() newCupboard(); //第七步 table.f2(111); //第八步 cupboard.f3(111); } //Java数据类型、对象引用和构造器之间的初始化顺序https://www.sunjs.com/article/detail/debedcef327c4872933e0b2f1ac7cb71.html //第1步: //先初始化静态代码块、 //Table类中也含有静态引用变量,所以先去执行bowl引用指向的对象的创建,所以先打印Bowl(1) //然后该类中还有一个静态对象,所以立即去初始化这个静态对象,然后打印Bowl(2) //执行完成以后,正式创建对象,执行Table类的默认无参构造函数,打印Table() //构造函数内又使用静态变量bowl2调用了其对象内的方法,所以打印f1(1) //到此这一行代码执行的初始化全部执行完毕 staticTabletable=newTable(); //第2步: //初始化Cupboard类,因为Cupboard类中也含有两个静态对象,所以依次执行Bowl(4)和Bowl(5) //在执行Cupboard构造函数之前先执行变量初始化的规则,所以bowl3先执行,打印Bolw(3) //然后执行无参构造函数,打印Cupboard() //到此,这行代码的初始化全部执行完毕 staticCupboardcupboard=newCupboard(); }
执行结果:
Bowl(1)
Bowl(2)
Table()
f1(1)
Bowl(4)
Bowl(5)
Bowl(3)
Cupboard()
CreatingnewCupboardinmain
Bowl(3)
Cupboard()
CreatingnewCupboardinmain
Bowl(3)
Cupboard()
f2(111)
f3(111)
以上就是Java静态数据初始化的示例代码的详细内容,更多关于Java静态数据初始化的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。