equals,==,hashcode
来源:互联网 发布:mysql主键有什么用 编辑:程序博客网 时间:2024/06/05 01:06
我们都知道java所有的类都继承Object,而Object中有两个方法我经常的使用。第一个是equals,还有一个是 hashcode。
这两个方法的作用,都是在对象比较相等的情况下使用。先说一下什么是hashcode。就是在对象产生的时候都会产生一个hashcode值,也可以称作对象的散列值。
"=="
这个符号的使用场景主要是对象的对比。如果对象有相同的内存地址那么可以说明这两个对象是相等的。String类型则是一个特殊的例子,因为在java中有常量池的概念,所以一下是相等的
String a = "123"; String b = "123"; a == b; //true 对于Interger等包装类型也有常量池的概念。
String a = new String("abc"); String b = new String("abc"); a == b;//false因为这样的初始化一个字符串分别会在内存中分配不同的地址。
“equals”
equals方法和hashcode方法是绑定在一起的。为什么呢,因为存在这样一个约定,如果两个对象的equals方法相等那么两个对象的hashcode一定相等。反之则不成立。即两个对象的hashcode 相等则equals不一定为true。所以在重写的注意equals和hashcode一定要一起重写。String 就重写了equals方法。
0 0
- hashCode、equals、==
- equals == hashcode
- equals == hashcode
- equals,==,hashcode
- equals 和 ==, equals 和 hashcode
- equals ,== hashCode方法
- HashCode,equals 和 ==
- 关于“==”、equals()、hashCode()
- equal | == | equals | hashCode
- HashCode,equals 和 ==
- java ==,hashCode(),equals(),
- ==、equals和hashCode
- 关于equals,==,hashCode
- equals , hashcode() 和 ==
- 理解equals,==,hashcode,
- hashcode、equals和==
- ==,equals()和hashCode()
- ==、equals、hashCode区别?
- linux下elasticsearch 安装、配置及示例
- bootstrap select2默认选中后台传过来的值
- Caffe源码解读:dropout_layer的正向传播和反向传播
- 使用RTMPdump(libRTMP)直播来自v4l2的摄像头数据
- mysql-sql-select
- equals,==,hashcode
- Java中的泛型类,泛型方法,泛型接口
- MDK debug时error 57:illegal address (0x08000000)解决办法
- (转载)Twain 学习纪录
- 深度学习基础
- [Language]Python跳转控制--条件与循环
- POJ1222_EXTENDED LIGHTS OUT_高斯消元法
- Python学习笔记(二)——特殊方法
- Ubuntu配置最新版nodejs环境