0

我知道如果是原始类型数组,比如int,会是0,但是作为对象,比如String或者自定义类,还是0吗?空值?要不然是啥?

4

4 回答 4

10

它始终是元素类型的默认值——null对于任何类类型,0 表示数字类型,'\0'forcharfalsefor boolean。(NULL在Java中不存在,0对于引用来说是一个无意义的值。它可能是内存中的物理表示,但它本身并不是一个引用值。)

请参阅JLS 的第 15.10.1 节了解数组创建的工作原理,并参阅第 4.12.5节了解有关不同类型的默认值的更明确的详细信息。

于 2012-09-30T22:57:00.830 回答
6

对象数组的元素被初始化为null。像馅饼一样简单。

于 2012-09-30T22:57:06.207 回答
3

对对象的任何引用都被初始化为null在这里,您可以找到 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
于 2012-09-30T23:00:39.670 回答
0

为了帮助您了解默认类型的原则,请考虑一下对象的决定性默认值是什么?

  • 对于int任何数字都是有意义的,比如0
  • 对于布尔值,任何逻辑值都是有意义的,例如false
  • 对于char任何符号都有意义,例如'\0'
  • ...

此类型存在明确范围的有效值(例如 {false, true})。所以任何值都可以用作默认值。

对于对象,没有明确的有效值范围。对象可以保存任何成员变量或提供一些方法,但对象没有特定的“值”

于 2012-10-01T00:04:24.873 回答