我想确定什么是Java中已声明但未初始化的变量/对象的状态。在Java中声明的未初始化变量会怎样?它有价值吗?
我不能实际测试它,因为我不断得到“未初始化”警告,我似乎无法抑制它,并且无法进行测试,如果我初始化变量。
虽然例如,我猜如果变量是integer
它可能等于。
但是,如果变量是一个字符串,将等于null
或isEmpty()
将返回true
?
所有非初始化变量的值是否相同?或者每个声明(含义,int,string,double等)在未初始化时都有不同的值?
**** ****更新
因此,正如我现在看到的,它使一个很大的区别,如果变量声明为locally
或Class
,但我似乎无法理解为什么当在类中声明为静态时它不会给出任何错误,但是当在main中声明时它会生成"Not Initialized" error
。
它取决于一个类变量还是一个局部变量?一个类变量要么是'null',要么是它的代表默认值,局部变量不能被单元化。 – SomeJavaGuy
那么有没有办法不初始化一个局部变量?嗯,让我们说它的一个类变量,在任何情况下,它会是空的?我会得到整数,但对于字符串等仍然是空? – hedgehog
如果声明一个对象,比如'String myString;'但是别的什么都不做,那么在运行时使用'myString.isEmpty()'会产生一个'nullPointerException'。 基本上默认为'0','0.0'等.... – jr593