首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java面试 >

一路经典的JAVA面试题

2013-10-27 
一道经典的JAVA面试题????? 上面的代码普遍都能知道答案,输出是:?????? 现在输出的确不在是上面的结果,结

一道经典的JAVA面试题

????? 上面的代码普遍都能知道答案,输出是:?

private static N n = new N();public static int a;public static int b = 0;

??????? 首先给静态变量分配内存空间,其次给静态变量赋予默认值,得到 n = null ;a = 0; b = 0;

? 然后显示初始化各静态变量,n为N对象,在new N()的时候对a、b自增,得到a = 1;b = 1;

? 因为a没有显示赋予初值,所以a还是为a = 1;而b显示赋予初值为0,所以b = 0;得到最终结果如上述。

?????? 所以得到最终的结论是,jvm在加载类的时候对静态代码按如下步骤处理:

??????? 1、当jvm在加载类的时候,首先是对各个静态变量分配空间。

??????? 2、对各个静态变量赋予默认值(比如int、long型的默认值为0,Object的默认值为null)。

??????? 3、对各个静态变量按顺序显示初始化(即按照代码里面的初始化为其初始化)。

热点排行