name.equals("") name==null name.length()==0有什么区别

来源:百度知道 编辑:UC知道 时间:2024/05/30 04:57:12
name.equals("") name==null name.length()==0
判断是否为空的语句,这三句有啥区别?

首先你要明白所有都是对象这个概念。

那么下面给你解释下三者的不同:

name==null
判断这个name对象是否为空。name可以是任意的类型。当然“”也就是空字符串不是null。

name.equals("")

判断name对象是否和空字符串相等,如果是string类型,则比较name是不是空字符串。

name.length()==0

string类型的name对象的长度是不是等于0。

第一个就是判断对象是否为null,既空引用,没有初始化过。

第二和第三功能一样,都可以做为判断string型的对象有没有内容。但需要注意的是,如果name对象为null会出现空指针异常。建议对空字符的判断可以这样。
"".equals(name).可以避免上面的情况。

name.equals("")
这个是两个对象的比较

name==null 是判断name是否是对象的实例化
name.length()==0 length() 是个方法 ,这个方法判断的是name值的长度是否为0

理解这个问题,首先理解的是-------对象的概念-------兄弟

"".equals(name)

这个需要注意一下就行



"".equals(name) 最省事

第二个是对象比较,也就是引用比较,第一个是值比较