【问题标题】:Primitives/Objects Declaration, default initialization valuesPrimitives/Objects 声明,默认初始化值
【发布时间】:2012-12-07 23:59:15
【问题描述】:

在声明原语/对象时,它们是否被初始化?

哪些是默认值?

类成员本地字段的行为是什么?

类成员上的对象声明呢?


如下所述,这些是默认值:

Data Type - Default Value (for fields)

byte  0
short 0
int   0
long  0L
float 0.0f
double    0.0d
char  '\u0000'
String (or any object)    null
boolean   false

请注意,对象被初始化为null

【问题讨论】:

  • 在 JavaSE 中也是 0
  • 第一个代码int是类成员,第二个代码是局部变量,这就是区别

标签: java initialization default


【解决方案1】:

int 的默认值是 0,这是它在 JavaSE 和 JavaEE 中的值,除非它被分配了另一个值。

您不能在 Java(或任何其他原语)中拥有未初始化的 int 类成员。

在您的示例中,您显示 int 是一个类成员,在另一个示例中它是一个局部变量,这就是区别。

对于class members,JVM 将放置默认值,对于local variables,它让您在访问变量之前分配初始值。

您可以查看Primitive Data Types 中的Default Values 部分,了解有关类成员默认值的更多信息。

【讨论】:

  • JVM 是否也为 objects 类成员调用默认构造函数?
  • 不,它仅用于基元,请参阅here(默认值)
  • 我必须补充一点,所有对象默认初始化为 null
  • 啊,你说得对,对不起,我混淆了 null 和未初始化的一秒钟。
  • float[] hello = new float[1] // 为什么需要这个初始化。请给我一些帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-14
  • 2014-12-29
  • 2020-02-08
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
  • 2013-01-17
相关资源
最近更新 更多