如下代码
String [] str = new String[20];
//下面使用equals就是错误的语句
if(str.equals()null){
}
//使用!=就可以,为什么?
if(str!=null){
}
如上代码所示,请各位不吝赐教,谢谢。
str的equals被重载为判断字符串的字面值是否相等。
null的字符串和null相比,或者和另一个null的字符串相比,都不能返回true
另外你写的也不合语法
if(str.equals(null)) 这是符合语法但是不符合你意图的代码
这是两个字符串相比较,null应该在括号中。
equal 是比较字符床啊!
首先,equals的左右两端的参数都不能为null对象的,否则会报空指针的,你跟下源码就知道了,它是对内容进行判断的,是两个对象在业务逻辑的属性值都相等的话,就是相等,比如Integer类型如果俩对象值相等,这个函数就返回真,而且这个函数是Object类的,子类可以重写,不是字符串特有的,所以一楼观点不对。其次,判断对象是否为null直接用等等,是对地址的判断。
方法是怎么用的。。。 equals(object) 或者 直接 == != null
equals是比较用的,==判断为不为空。不为空的时候才是用equals做比较呢
String [] str = new String[20];
//下面使用equals就是错误的语句
if(str == null){//判断字符串对象是否为空,为空就是对象不存在
}
if(str.equals("")){//判断是字符串对象的值否为空,为空就是该对象的值什么也没有等于 "",连个空格都没有
}
//使用!=就可以,为什么?
if(str!=null){//判断str对象是否不为空对象,条件成立即对象存在,上面通过new 关键字已创建一个str对象,所以不为空
}