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方法进行了重写的话,比较的是所指向的对象的内容。
刚写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方法进行了重写的话,比较的是所指向的对象的内容。
相关文章推荐
- null和""以及==与equals的区别
- 【转】Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例
- jquery和javascript的区别以及常用方法比较
- String字符串的==、equals方法以及对象的==、equals方法的区别
- 以String为例详解“==”与equals()区别,以及String中重写equals()方法
- 【概念解析一】两种比较方法的区别:== 和 equals
- ==与.equals方法的比较区别
- "=="和"equals"两种比较方法的区别
- Java equals 方法以及和 ==的区别
- str==null、str.length==0以及''''.equals(str)之间的区别
- Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)
- equals和等号的区别 null写在比较值前和比较值后的区别
- 1.import和include区别 2.NSLog 和printf区别 3.创建对象做的事情 4. 类和对象方法比较 5 匿名对象优缺点 6. 封装 7.作用域范围 8.id和instancetype 9.自定义构造方法规范 10.nil和Nil及NULL、NSNull区别
- 彻底弄懂Java中的equals()方法以及与"=="的区别
- C#中null和空的区别,==和Equals()方法的区别
- null和""以及==与equals的区别
- Java 中equal() 方法与==的区别以及 equals()与 hashCode()方法重写
- MySQL中的datetime与timestamp区别比较,以及选择方法
- 细说java面试“=="和"equals"方法的区别以及常量池的概念及使用
- java中创建String类型对象的两种方式以及在使用equals()和“==”两种方法时的区别