您的位置:首页 > 其它

null 与 “” 的区别以及“==”和equals方法比较

2017-06-28 15:41 316 查看
null 与 “” 的区别:
刚写ut时代码总是覆盖不全,一些分支没有走到。String str1 = null; str引用为空
String str2 = ""; str引用一个空串也就是null没有分配空间,""分配了空间,因此str1还不是一个实例化的对象,而str2已经实例化。
注意因为null不是对象,""是对象。所以比较的时候必须是 if(str1==null){...}和if(str2.equals("")){...}。
对象用equals比较,null用等号比较。因此,如果str1=null;下面的写法错误: 
if(str1.equals("")||str1==null){//如果str1没有值,则.... 
//。。。。 

正确的写法是 if(str1==null||str1.equals("")){ //先判断是不是对象,如果是,再判断是不是空字符串 
//... 
}参考:http://blog.csdn.net/gst6062825/article/details/7534075
"=="和equals方法比较总结:
  String类对equals方法进行了重写,用来比较指向的字符串对象所存储的字符串是否相等。
  其他的一些类诸如Double,Date,Integer等,都对equals方法进行了重写用来比较指向的对象所存储的内容是否相等。
  总结来说:
  1)对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;
    如果作用于引用类型的变量,则比较的是所指向的对象的地址
  2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量
    如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;
    诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: