- 第一题:判断以下语句的输出结果(关于对象的调用)
静态变量有默认初始化
题目分析:
类变量(静态变量)和类函数(静态函数)的执行顺序,因为类变量有初始值,所以我们要先给他赋值,因次我们就要先进行他的操作
所以staic B b = new B();此时我们来在堆空间内生成对象
对象调用变量是直接去堆内所属空间内找,如果没有则去静态里找
解题思路:
第一步:先编译BTest.java文件,生成BTest.class和B.class文件
第二步:然后将生成的class文件加载进方法区中
第三步:当staic B b = new B();加载进方法区中时就需要在堆中创建对象,开空间分配地址,
第四步:因为创建了对象,所以B的构造函数就需要进栈,因此在主函数进栈之前我们就已经生成了一个对象。
第五步:此时主函数进栈,执行第一句话,创建对象–在堆中开空间分配地址
第六步:然后构造函数进栈,
操作图如下:
JavaSE--例题分享
最新推荐文章于 2022-07-29 01:40:53 发布