null和“”,==和equals()的混用和区别
来源:互联网 发布:小鲜肉演技知乎 编辑:程序博客网 时间:2024/05/17 12:54
提问: if(str == null || "".equals(null))和if(str == null || str.equals(""))有什么区别吗?
今天无意间看到自己之前在百度上回答别人的问题,看了一下,发现不够完美,今天将其进行一番修改并移植到CSDN上,希望对Java初学者能有帮助,如果有更好见解的朋友不妨留言,我们可以互动交流一番。
正题:
如果字符串 str == null 为真,则前者if()中会返回false,后者if()会报空指针异常;
注:在这儿用的是常用的基本类型String为例,当然str也可以代表任何Java中的固有类型和自定义的类型,而equals()则代表的是对应str的类型中的方法和属性。
当str == null 时,表示 str 没有指向任何实例化的对象(即:str 是没有的实例化的字符串对象,代表着其不能调用String类中的所有方法),在执行str.equal()方法时,虚拟机会发现str不能调用String类型中的方法equals(),所以返回异常,表明这是一个需要引起注意的地方;反过来 "".equals(str),""不为null,而是一个字节长度为0的字符串对象,其可以调用String类中的所有属性和方法,所以不会抛出异常,一个(即:“”,是一个长度为零的实例对象)不为空,一个(即:null)为空,所以会返回false;
再有,写 str == null 没有错,但是最好养成 null == str 的习惯,因为 null ==str 永远不会产生空指针异常,但 str == null 的很容易产生,这也是极限编程建议的写法!
谢谢阅读!有更好解释的朋友可以留言交流交流!
阅读全文
0 0
- null和“”,==和equals()的混用和区别
- !=null和equals的区别
- ==和equals的区别 null和""的区别
- xxx==null和xxx.equals(null)的区别
- null和""以及==与equals的区别
- null和""以及==与equals的区别
- C#中null和空的区别,==和Equals()方法的区别
- java中“”和null的区别以及==和equals的区别
- java判断list为空、xxx==null和xxx.equals(null)的区别
- “=”和“equals()”的区别
- java ==和equals、equals和hashCode的区别
- obj==null和obj.isEmpty()还有"".equals()有什么区别,equals
- java的String=a; a==null和a.equals(null)这两个判断有什么区别
- s!=null和!s.equals("")比较
- 在条件表达式中null.equals(str)和str.equals(null)类似形式的区别
- object.equals(null)和object==null有什么区别
- object.equals(null)和object==null有什么区别
- str != null 和 null != null的区别
- 其他对象
- Unity 中 启动页 滚动 代码实现
- 水波纹特效—Ripple
- bzoj 3749: [POI2015]Łasuchy
- Struts2知识点回顾(六)文件上传与下载
- null和“”,==和equals()的混用和区别
- 树莓派raspberry之samba
- HDOJ 1869 六度分离(floyd最短路~)
- 如何学习代码
- 在ubuntu14.04下openni+opencv+kinectV1的学习一:学习准备
- 树形结构的3种搜索方式示例分享
- BMP图像数据格式详解
- java中类的静态成员和实例成员
- 动态规划