Java中的变量默认值

声明时,Java中的每个类型都具有原始值。 本文包含原始数据类型原始数据类型的说明 。 知道这一点,为什么Eclipse显示错误告诉我变量可能尚未初始化? 如果我有例如

int x; x++; 

从链接

局部变量略有不同; 编译器永远不会为未初始化的局部变量分配默认值。 如果无法初始化声明它的局部变量,请确保在尝试使用它之前为其赋值。 访问未初始化的局部变量将导致编译时错误。

来自Java语言规范 ,Java SE 8 Edition, 4.12.5变量的初始值 :

局部变量(§14.4,§14.14)必须在使用之前通过初始化(§14.4)或赋值(§15.26)显式给出一个值,其方式可以使用明确赋值的规则进行validation(§ 16(确定任务))。

局部变量未初始化。

这是一个局部变量:

 void aaa() { int x; } 

这是一个实例变量。 这些会自动初始化:

 class X { int x; } 

数据类型默认值(对于字段)

字节0

短0

int 0

长0L

浮点数0.0f

双0.0d

char’u0000′

字符串(或任何对象)null

布尔值假

从您提供的原始数据类型链接:“局部变量略有不同;编译器永远不会为未初始化的局部变量分配默认值。如果您无法初始化声明它的局部变量,请确保在之前为其赋值您尝试使用它。访问未初始化的局部变量将导致编译时错误“。

你看到的不是错误,而是你的日食偏好。 您可以将其更改为忽略eclipse首选项中未初始化的变量。