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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。