【发布时间】:2016-12-28 20:01:07
【问题描述】:
它有价值吗?
我试图了解 Java 中已声明但未初始化的变量/对象的状态。
我无法实际测试它,因为我不断收到 "Not Initialized" 编译错误,而且我似乎无法抑制它。
例如,我猜如果变量是integer,它可能等于0。
但是如果变量是一个字符串,它会等于null 还是isEmpty() 会返回true?
所有未初始化变量的值是否相同?还是每个声明(含义、整数、字符串、双精度等)在未显式初始化时都有不同的值?
更新
因此,正如我现在所看到的,如果将变量声明为 locally 或在 Class 中,则会产生很大的不同,尽管我似乎无法理解为什么在类中声明为静态时它没有给出错误,但是在主要声明时,它会产生"Not Initialized" error。
【问题讨论】:
-
取决于,类变量还是局部变量?类变量要么是
null,要么是具有代表性的默认值,局部变量不能被统一化。 -
那么有没有办法不初始化一个局部变量呢?嗯,可以说它是一个类变量,无论如何它都会为空?我会得到整数,但字符串等仍然为空?
-
如果你声明了一个对象,比如
String myString;,但什么也不做,那么在运行时使用myString.isEmpty()会产生一个nullPointerException。基元“一般”默认为“0”、“0.0”等...... -
对于原始类型,它将是默认值(布尔为 false,数字等为 0),但对于对象,它始终为 null
标签: java initialization