通过代码实例解析JAVA类生命周期
代码
publicclassTestClass{
publicstaticintk=0;
publicstaticTestClasst1=newTestClass("t1");
publicstaticTestClasst2=newTestClass("t2");
publicstaticinti=print("i");
publicstaticintn=99;
publicintj=print("j");
{
print("构造块");
}
static{
print("静态块");
}
publicTestClass(Stringstr){
System.out.println((++k)+""+str+"i="+i+"n="+n);
++n;
++i;
}
publicstaticintprint(Stringstr){
System.out.println((++k)+":"+str+"i="+i+"n="+n);
++n;
return++i;
}
publicstaticvoidmain(String[]args){
System.out.println("=========start============");
TestClasst=newTestClass("init");
System.out.println("=========end============");
}
}
执行结果
1:ji=0n=0 2:构造块i=1n=1 3t1i=2n=2 4:ji=3n=3 5:构造块i=4n=4 6t2i=5n=5 7:ii=6n=6 8:静态块i=7n=99 =========start============ 9:ji=8n=100 10:构造块i=9n=101 11initi=10n=102 =========end============
讲解
代码由上到下依次执行
由static修饰的变量或方法是在方法区,属于类变量、类方法
new对象这个操作,new出来的对象在堆里对象的引用在栈里
new出来的对象方法快先构造方法执行
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。