分配null和不分配null有什么区别?

时间:2014-01-08 09:32:10

标签: java memory null variable-assignment

(分配null与不分配null)之间的区别 在java中的内存和所有?

String str;    
String str = null;

4 个答案:

答案 0 :(得分:2)

如果String str;是局部变量(不是类成员),则不会初始化它。编译将失败,并显示str未初始化的错误。

如果str是类的实例或静态成员,则其默认值为null,因此没有区别。

  

......在记忆和所有方面?

没有任何区别。

答案 1 :(得分:0)

1. Inside a method if the variable is a local variable : 

在第一种情况下,编译器将抛出错误,说str未初始化(在编译期间)......在第二种情况下,它不会......除此之外,没有任何区别...

2. If str is at class level : 

没有区别(感谢@Ruchira这个......)

答案 2 :(得分:0)

如果它是一个类变量,则没有区别。如果它是本地/方法变量,如果只执行String str;,如果稍后尝试使用str(因为它未初始化),则会出现编译时错误。

答案 3 :(得分:0)

如果您在方法中使用 String str; ,那么当您尝试使用 str 没有初始化。但是当你将 str 声明为实例变量时,即使你没有初始化它也很难, 默认构造函数会初始化实例变量< / em> str null ,因为str是String类型,它是java中的非原始数据类型。