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