首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java类装入器的准备阶段和初始化阶段

java类装入器的准备阶段和初始化阶段
EN

Stack Overflow用户
提问于 2015-03-28 20:26:23
回答 1查看 216关注 0票数 0

我无法理解以下几行之间的区别( http://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.2 )

( A)准备工作涉及将静态字段初始化为默认值。

( B)类的初始化包括为类中声明的静态字段(类变量)执行初始化器。

这是否意味着'a‘将在“准备”阶段分配默认值,而'b’将在“初始化”阶段获得赋值:

代码语言:javascript
复制
static int a;  
static int b=2;
EN

回答 1

Stack Overflow用户

发布于 2015-03-28 20:41:28

所有基本类型的字段都将自动初始化为默认值。

对于int是0。所以a == 0。您可以检查默认值这里

它在非原始类型(类)上有区别。

所以

Font a; -> a == null (如果您尝试使用a的方法,您将得到a is not initialized

Font b = new Font("Dialog", 16, Font.BOLD); -> b == ... (我想你理解)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29322215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档