Java - 区别null与空

时间:2014-03-15 23:38:11

标签: java

初始化为null或清空有什么区别:

Type name = null;
Type name;

有什么不同吗?

我理解为例如:

String name = null;
String name = "";

不同之处在于,第一个不会将其初始化为任何值而另一个值是,但前两个之间是否存在差异?

3 个答案:

答案 0 :(得分:7)

Type name = null;
Type name;

任何参考变量的默认值为null,因此无差异

如果它被定义到某个局部范围,那么如果你在初始化之前尝试访问它会给你编译错误

答案 1 :(得分:2)

我所知道的唯一区别是,如果您在本地范围而不是在类范围内声明变量,如果您在后者的某些初始化之前尝试使用该变量,则编译器会抱怨。否则,我知道没有区别。

答案 2 :(得分:2)

没有。没有区别。如果您未指定默认值,则会自动将该变量视为null