黑马程序员技术交流社区

标题: 请问大神这道题答案选什么? [打印本页]

作者: 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 编辑
  1. //实践是检验真理的唯一标准

  2. class order1 {
  3.         private static String s = "A";
  4.         private String ns = "nA";
  5.         static{
  6. //静态代码块执行前先输出一次静态变量的值,若有值则优先于静态代码块
  7.                 System.out.println("in static s = "+s);
  8.                 s = "B";
  9.                 System.out.println("in static s = "+s);
  10.         }
  11.         {
  12. //执行构造函数前先输出一次非静态成员
  13.                 System.out.println("in order() ns = "+ns);
  14.         }
  15.         order1(){
  16.                 s = "C";
  17.                 ns = "nB";
  18.                 System.out.println("in order() s = "+s);
  19.                 System.out.println("in order() ns = "+ns);
  20.         }
  21.         
  22. }

  23. public class testStatic {

  24.     public static void main(String[] args)
  25.     {
  26.             new order1();
  27.     }
  28. }


复制代码
运行结果:
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