首先,我觉得我们有必要先搞懂null这个东西。
1)null:是java的一个关键字,表示一个对象的值;
比如:String str = null; 表示声明一个对象的引用,指向null,也就是还没有指向任何内存空间。
2) “null”:表示一个内容为null的字符串
比如:String str = “null”; 表示声明一个字符串的引用,内容为null,str引用指向null字符串的内存空间
3)”“:表示一个空的字符串,长度为0
比如:String str = “”; 表示声明一个字符串的引用,内容为”“;长度是为0的,str引用指向这个空字符串的内存空间
所以,我们就可以很容易的得出结论了:
- 字符串对象和null的值、内存空间都不相等;
- “”字符串和null的值、内存空间也都不相等;
- 字符类型不赋值默认为null
==:比较两个变量本身的值,也就是两个对象在内存中的存储地址
equlas:比较两个变量的值,也就是内容是否一样。
判断是否为空的方法:
String str = “”;
if(str == null || str.equals("") ){
System.out.println("yes1");
}
if(str == null || str.length() == 0){
}if(str == null || str == “”){}
- if(str == null || str.isEmpty()){}
这里的str == null和在前面的位置是很有必要的,我一开始不知道就踩了个坑,比如String str = null;我们先进行str的equlas和length()==0判断就会报空指针异常,
这里说到空指针异常,也是让我很头疼,特别是刚开始用数组默认null判断时。所以在null时,我们一定要先进行非空判断,一定,一定,一定!