java——==、equlas和null

来源:互联网 发布:三菱plc编程软件免费下载 编辑:程序博客网 时间:2024/05/20 18:53
首先,我觉得我们有必要先搞懂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 = “”;


  1. if(str == null || str.equals("") ){
    System.out.println("yes1");
    }


  2. if(str == null || str.length() == 0){
    }

  3. if(str == null || str == “”){}

  4. if(str == null || str.isEmpty()){}

这里的str == null和在前面的位置是很有必要的,我一开始不知道就踩了个坑,比如String str = null;我们先进行str的equlas和length()==0判断就会报空指针异常,
这里说到空指针异常,也是让我很头疼,特别是刚开始用数组默认null判断时。所以在null时,我们一定要先进行非空判断,一定,一定,一定!