Java中的变量默认值

Man*_*uro 8 java variables

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

int x;
x++;
Run Code Online (Sandbox Code Playgroud)

Chi*_*kei 15

从链接

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

  • 如果反徽章没有[击落](http://blog.stackoverflow.com/2009/12/badges-positive-only/)我会建议"通过你自己的链接回答"徽章. (5认同)

Tom*_*Tom 5

局部变量不会被初始化。

这是一个局部变量:

void aaa() {
    int x;
}
Run Code Online (Sandbox Code Playgroud)

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

class X {
    int x;
}
Run Code Online (Sandbox Code Playgroud)

  • @Mansuro:也用于数组内容。 (2认同)

hmj*_*mjd 5

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

局部变量(§14.4,§14.14)必须在使用之前通过初始化(第14.4节)或赋值(第15.26节)以可以使用明确赋值规则验证的方式显式赋予值(§14.4,§14.14) 16(确定任务)).