Java中的equals和==异同,你知道多少?
来源:互联网 发布:重庆大学网络教育专科 编辑:程序博客网 时间:2024/06/05 05:55
1. 背景
今天在调试程序的时候,在调试一个分页查询的时候,后台的代码在拿到页数的时候抛出异常,刚开始以为是没有拿到数据,于是就手动判断,如果没有拿到值,就赋值,可是奇怪的事情发生了,还是不执行为空的代码,跟踪调试发现了一个秘密:
于是在判断的框中添加不等于NaN,但是结果出人意料还是继续往下执行,添加如下的代码
<span style="font-family:Microsoft YaHei;font-size:14px;"><strong>if (rows=="NaN"|| rows == null || "".equals(rows)) { pageSize =10; }else { pageSize =Integer.parseInt(rows); }</strong></span>
从而通过值的跟踪和判断,终于发现了原因:
并且当执行rows=="NaN"和执行rows.equals("NaN"),返回的结果如下:
至此原因总算是找到了,也知道为什么我前面的那种写法会无法执行第一种的判断,因为返回的是false,怎么可能执行里面的东西呢?改成下面的就可以了:
<span style="font-family:Microsoft YaHei;font-size:14px;"><strong>if (rows.equals("NaN") || rows == null || "".equals(rows)) { pageSize =10; }else { pageSize =Integer.parseInt(rows); }</strong></span>
2. 那么equals和==存在什么区别呢?
我们知道当使用==的时候,比较的是两个变量的引用的地址,两个变量即使是值相等,在内存中的执行地址也是不一样,故而不能是相等的结果,那么我们就不能比较了吗?当然是可以的啊,equals不就实现了,equals的好处是不是比较两个变量的引用的地址,而是比较它们在内存中的数值,这样即使地址不一样,只要值一样,我们就是可以进行比较。
推荐文章:http://new-fighter.iteye.com/blog/1634786
1 0
- Java中的equals和==异同,你知道多少?
- Java中==和equals的异同以及hahCode
- java Object equals 和 == String equals 和 == 的异同
- java基础知识,你知道多少?
- java基础知识,你知道多少?
- java中的==和equals,一劳永逸...
- Java中的==和equals区别
- Java中的==和equals区别
- java中的equals() 和 ==
- Java中的==和equals区别
- Java中的==和equals浅见
- Java中的==和equals区别
- Java中的==和equals区别
- java 中的==和equals比较
- Java中的==和equals区别
- Java中的==和equals区别
- Java中的==和equals区别
- Java中的==和equals区别
- 亚马逊AWS学习——为oracle类型的RDS数据库部署数据
- 剑指Offer面试题47(Java版):不用加减乘除做加法
- Add Custom Tab in Detail screen for MIGO Transaction
- [Books]《Javascript权威指南》-- #6~12
- 最好的10个移动 Web 应用程序开发框架
- Java中的equals和==异同,你知道多少?
- React Native 简介:用 JavaScript 搭建 iOS 应用 (1)
- ImageLoader框架使用步骤
- hdoj1325Is It A Tree?
- tableView的编辑
- 【HDU5371】Hotaru's problem(Manacher + set)
- Singapore National Day (SG50 Golden Jubilee)
- 如何使用1M的内存排序100万个8位数
- ORM进阶:Hibernate的优劣对比