java String str; 和 String str= null;的区别???
发布网友
发布时间:2024-01-31 21:48
我来回答
共5个回答
热心网友
时间:2024-11-05 15:55
良好的编程习惯会减少你的维护时间和增加程序的健壮性,从代码意义上来说,
String str; 和 String str= null;没有区别,String str也会默认给它加一个null。但是这个是有区别的。
你写了String str=null说明你给它初始化了。 str.xxx(); eclipse 提示 nullpointer标明是一个空指针,空指针无法引用,所以报错了。但是String str;指向性不明,而且有时候不一定会报错,一定程度上减弱了程序的健壮性。
良好的变成习惯是所有的变量一定要初始化。
热心网友
时间:2024-11-05 15:56
1.没有区别
String是引用类型的,所以默认是null
2.至于你说的那个问题
我开始也是这样认为,但在eclipse里写代码时,String str; str.xxx(); eclipse提示 变量未初始化。 String str = null; str.xxx(); eclipse 提示 nullpointer。。
那是因为
a.你在用到str的话必须首先给他赋值。比如String str="123"或者
String str=null这两种写法都是给他赋值了。这样语法后面用到
str.xxx();
语法就没错了。可以直接运行
3.抛出的nullpointexception那是异常,你那时候就是null,null不能点出.xxx(),所以异常
4.
String str后直接写
str.xxx();
是不行的,因为没有赋值初始值,这是语法错误
热心网友
时间:2024-11-05 15:56
有区别
String str;只能声明全局变量或者叫类变量,不用赋值,默认初始值为null
String str= null;声明局部变量(也就是方法里的变量),必须显示的初始化为null,否则无法通过编译
热心网友
时间:2024-11-05 15:57
没有区别。。String str;默认就是null。不过有时候会要有初始值的。追问我开始也是这样认为,但在eclipse里写代码时,String str; str.xxx(); eclipse提示 变量未初始化。 String str = null; str.xxx(); eclipse 提示 nullpointer。。
追答那就是要必须有初始值的时候了 你加null就好了
热心网友
时间:2024-11-05 15:58
String str 在编译后,相当于 String str= null; 但是会有警告.