(分配null
与不分配null
)之间的区别
在java中的内存和所有?
String str;
String str = null;
答案 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中的非原始数据类型。