java中的==和equals的区别
来源:互联网 发布:手机淘宝如何注册店铺 编辑:程序博客网 时间:2024/06/07 10:54
今天在做项目中发现一个Java基本的知识点,filterStr 从数据库中读出为"',执行下面的结果竟然为true
String filterStr = SystemConfigUtils.getSystemConfig(SystemConfigUtils.FILTERCOMMENTTEXT);
if(filterStr!=null&&!""!=filterStr){
filters = filterStr.split(";");
}
这个让我突然理解不了了,仔细研究才发现一个基本的问题,就是== 和equals的简单理解为,
(1)八种基本数据类型,boolean 、byte、char、short、int、long、float、double、他们之间的比较,应用双等号(==),比较的是他们的值。
(2)对于复合类型或者Java类,==比较的是内存地址,equals比较的也是内存地址,但是如String,Integer,Date在这些类中equals的方法被覆写了,比较的是数据值。因此 对于复合数据类型的equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号(==)的结果相同。
因此将上面改为:
String filterStr = SystemConfigUtils.getSystemConfig(SystemConfigUtils.FILTERCOMMENTTEXT);
if(filterStr!=null&&!"".equals(filterStr)){
filters = filterStr.split(";");
}
- Java中的equals和==和equalsIgnoreCase()的区别
- 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区别
- Java中的==和equals区别
- Java中的==和equals区别
- Java中的==和equals区别
- Java中的==和equals区别
- 限制QLineEdit的数值输入范围
- telnet 模拟发送邮件
- Jackson学习笔记
- LIRe图像检索:FCTH算法原理与源码分析
- 内存问题定位与解决
- java中的==和equals的区别
- HTTP协议的头信息详解
- weblogic comet4j java.lang.ClassNotFoundException: org.apache.catalina.comet.CometProcessor
- 单元测试/自动化测试
- HEX文件和BIN文件格式的区别
- 19.Unity3D商业游戏源码研究-变身吧主公-战斗-MainPlayerStateHit
- 软件性能测试_Loadrunner正则表达式关联
- TextControl 单位
- 详解BarTender数据源操作列表