java 中equals与 ==的区别
来源:互联网 发布:手机安全中心软件 编辑:程序博客网 时间:2024/06/15 17:04
String 是引用类型的, 所以比较比较两个string类型的数据 必须要使用equals 而不用==
equals 只能比较引用类型(及对象), 默认情况下比较的是地址的值, 可以根据实际情况比较复写该方法,比较成员变量值是否相同。
== 对于基本数据类型比较的值是否相等。 但是对于引用类型比较的是地址
2)两个Long类型为什么不能直接用 == 比较
这要说到==和 equals 的区别了。
1. ==比较的是两个对象在内存中的地址值(栈中的内容)。
2.equals 是 java.lang.Object 类的一个方法。equals 比较的是两个对象的内容(堆中的内容)。java 中所有的类都默认继承于 Object,所以所有的类都有这个方法。
但是 Long 是一个对象,是对 long 的封装。我们看一下 Long 对象的源码,里面的 equals 方法是这么写的:
1 public boolean equals(Object obj) {2 if (obj instanceof Long) {3 return value == ((Long)obj).longValue();4 }5 return false;6 }
因此: 两个Long类型要是相等比较的话, 有两种方法:
a)用equal()方法
b)将Long类型通过long.value(), 转成long, 然后通过== 作为比较
c)也可以通过Long类的intValue()方法将两个Long类型转成int, 然后再进行比较
例如:
dto.getFileType().intValue() == ReconFileTypeEnum.BANK_FILE.getCode().intValue()
0 0
- 【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的区别
- java中== 与equals的区别
- java中==与equals的区别
- runtime之归档反归档
- 实现RecyclerView 的通用Adapter
- Coreseek算法分析
- Android 自定义Dialog,文字动态加载效果。
- 大数阶乘
- java 中equals与 ==的区别
- 面向对象总结(一)
- Validate Binary Search Tree
- 安卓开机LOGO动画
- LeetCode之18_4Sum
- Visual Studio2008 编译器 编辑代码时左侧显示行号
- SQL的四种连接-左外连接、右外连接、内连接、全连接
- 谈谈运维体系
- 屏幕适配一:基本概念及原理