黑马程序员技术交流社区
标题:
请问大神这道题答案选什么?
[打印本页]
作者:
supoman
时间:
2015-6-15 17:25
标题:
请问大神这道题答案选什么?
本帖最后由 supoman 于 2015-6-15 17:26 编辑
1、java中类的加载过程,按照加载的顺序正确的是()
1. 默认初始化静态成员变量
2. 执行静态代码块
3.加载非静态的成员
4.加载静态成员到静态区域
5.对静态成员变量进行显式初始化
A、4 , 1,2,5,3
B、4,3,2,1,5,
C、3,4,1,5,2
D、2,4,1,3,5
作者:
安安安
时间:
2015-6-15 17:43
我觉的应该是A。
静态的加载顺序真不清楚。
不过3.加载非静态成员,是在静态之后加载的。
排除法我觉的应该是A。
作者:
耀阳圣尊
时间:
2015-6-15 17:44
我认为选D
作者:
heima591046495
时间:
2015-6-15 18:04
用排除法可以得出选a
作者:
supoman
时间:
2015-6-15 18:09
还有没有人选啊
作者:
Nemo
时间:
2015-6-15 18:47
选A吧,虽然不确定,但是一般非静态都是在静态后面的额
作者:
Monster
时间:
2015-6-15 20:09
a,静态随类加载,非静态实例化时加载,所以非静态最后
作者:
wenxueaaa555
时间:
2015-6-15 21:05
答案应该是D,因为已加载类,静态代码块就执行了
作者:
a1224577182
时间:
2015-6-15 22:17
我觉得应该选A
作者:
shuaiqi_P_D
时间:
2015-6-15 22:24
肯定是选A啊
作者:
DAN66
时间:
2015-6-15 22:50
应该是A
作者:
张亚超2015
时间:
2015-6-15 22:53
选D,首先执行静态代码块
作者:
iFmmer
时间:
2015-6-15 22:57
本帖最后由 iFmmer 于 2015-6-15 23:02 编辑
//实践是检验真理的唯一标准
class order1 {
private static String s = "A";
private String ns = "nA";
static{
//静态代码块执行前先输出一次静态变量的值,若有值则优先于静态代码块
System.out.println("in static s = "+s);
s = "B";
System.out.println("in static s = "+s);
}
{
//执行构造函数前先输出一次非静态成员
System.out.println("in order() ns = "+ns);
}
order1(){
s = "C";
ns = "nB";
System.out.println("in order() s = "+s);
System.out.println("in order() ns = "+ns);
}
}
public class testStatic {
public static void main(String[] args)
{
new order1();
}
}
复制代码
运行结果:
in static s = A
in static s = B
in order() ns = nA
in order() s = C
in order() ns = nB
结果显示正确答案为A
虽然在我的印象中,似乎静态代码块是最优先执行的,但是我的程序结果如此,我想应该是我代码错了,求指正。
作者:
rose_xiaomei
时间:
2015-6-15 23:15
A 静态初始化初始化最先执行而且只执行一次 其次才是静态代码块 至于4,能力有限也不理解不过排除法选A是没错的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2