序列化变量的假值



为什么Java中瞬态变量的默认值显示为0 ?

怎么知道integer的值应该是0, String的值应该是null ?

它知道这个,因为它就是这样指定的。int默认值为0,String默认值为null

From DOCS

在声明字段时并不总是需要赋值。已声明但未初始化的字段将被编译器设置为合理的默认值。一般来说,该默认值将为零或null,具体取决于数据类型。

int的默认值为0String的默认值为null

字段的默认值由JLS定义。将其设置为瞬态会给提示它不会被设置,因此具有默认值。

它怎么知道integer的值应该是0,String的值应该是null ?

因为这是默认的,在Java语言规范中定义。

最新更新