将int初始化为0或不?

Nou*_*vay 15 java android primitive-types

在android源代码中,我看到他们将四个变量定义为

protected int mPaddingRight = 0;
protected int mPaddingLeft = 0;
protected int mPaddingTop;
protected int mPaddingBottom;
Run Code Online (Sandbox Code Playgroud)

在Java中,将变量初始化为0有什么区别?我不明白在某些编译器中我不能进行比较,除非我初始化该字段.但这不是这种情况.这与优化有关吗?或者这只是不一致/糟糕的编码实践?

F.I*_*gor 20

根据Java原始数据类型turorial,所有原始数据类型都具有默认值.所以初始化是隐含的.一个好的做法:在使用之前初始化值以防止意外行为.

byte    0
short   0
int 0
long    0L
float   0.0f
double  0.0d
char    '\u0000'
String (or any object)      null
boolean false
Run Code Online (Sandbox Code Playgroud)

  • java中局部变量没有初始化。请参阅上面提到的相同的 Java 基本数据类型教程。字段变量(实例变量)已初始化,但局部变量未初始化。 (2认同)