为什么在 Java 中为瞬态变量显示默认值为零?
它怎么知道值应该是0
forinteger
和null
for String
?
为什么在 Java 中为瞬态变量显示默认值为零?
它怎么知道值应该是0
forinteger
和null
for String
?
它知道这一点,因为它是这样指定的。默认值为int
0,默认值为String
null。
来自文档
声明字段时并不总是需要赋值。已声明但未初始化的字段将由编译器设置为合理的默认值。一般来说,此默认值将为零或空,具体取决于数据类型。
它怎么知道整数的值应该是 0 而字符串的值应该是 null?
因为这是Java 语言规范中定义的默认值。
int 的默认值为0 ,String 为 null
字段的默认值由 JLS 定义。使其瞬态暗示它不会被设置,因此具有默认值。