我知道如果它是一个原始类型的数组,比如int,它会是0,但作为一个对象,比如一个String或一个定制的类,它仍然是0吗?空值?或者是什么?
答案 0 :(得分:10)
它始终是元素类型的默认值 - 任何类类型为null
,数字类型为0,'\0'
为char
,{{1}为false
}。 (boolean
在Java中不存在,0对于引用来说是无意义的值。它可能是内存中的物理表示,但它本身不是引用值。)< / p>
有关数组创建的工作原理,请参阅JLS的section 15.10.1;有关不同类型的默认值的更详细的详细信息,请参阅section 4.12.5。
答案 1 :(得分:6)
对象数组的元素初始化为null
。简单就像馅饼。
答案 2 :(得分:3)
对对象的任何引用都初始化为null
。 Here您可以找到Java如何初始化其原始数据类型(包括对对象的引用)。
回顾一下:
Data Type Default Value (for fields)
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
any object null
boolean false
答案 3 :(得分:0)
为了帮助您一点点默认类型的原则,想一下对象可能是一个确定的默认值?
此类型存在明确的有效值范围(例如{false,true} )。 因此任何值都可以用作默认值。
对于对象,没有明确的有效值范围。对象可以包含任何成员变量或提供某些方法,但对象没有特定的“值”。