Java面试题之Java中==和equals()和hashCode()的区别
2024-09-08 10:26:03
“==”:
==是运算符,用来比较两个值、两个对象的内存地址是否相等;
“equals()”:
equals是Object类的方法,默认情况下比较两个对象是否是同一个对象,内部实现是通过“==”来实现的。
如果想比较两个对象的其他内容,则可以通过重写equals方法,
例如:String类就重写了equals方法,改成了对象的内容是否相等。
具体实现可以参考:https://www.cnblogs.com/hujinshui/p/10038044.html
“hashCode()”:
hashCoed也是Object类里面的方法,返回值是一个对象的哈希码,同一个对象哈希码一定相等,但不同对象哈希码也有可能相等。
如果两个对象通过equals方法比较相等,那么他的hashCode一定相等;
如果两个对象通过equals方法比较不相等,那么他的hashCode有可能相等;
例如以下程序:
class Untitled {
public static void main(String[] args) {
System.out.println("AaAa".hashCode());//
System.out.println("BBBB".hashCode());//
}
}
最新文章
- 最牛的打字效果JS插件 typing.js
- Android实战技巧之十二:Android Studio导入第三方类库、jar包和so库
- 当SD卡拔出时,返回首页,栈中的activity都要清除,只留下首页的activity
- Win7下通过eclipse远程连接CDH集群来执行相应的程序以及错误说明
- A trip through the graphics pipeline 2011 Part 10(翻译)
- C++ 继承之虚继承与普通继承的内存分布
- 使用JQuery结合HIghcharts实现从后台获取JSON实时刷新图表
- 【ANT】时间戳
- 【转】最近很火的 Safe Area 到底是什么
- centos7 安装php7
- EventBus vs Otto vs Guava--自定义消息总线
- jQuery属性--addClass()和removeClass()
- L017-linux系统定时任务crond入门小节
- [转载] JVM 内存结构
- 优化算法动画演示Alec Radford's animations for optimization algorithms
- lambda 表达式的由来
- 趣味js【练习题】
- Druid连接池及监控在spring中的配置
- Problem B. Harvest of Apples(杭电2018年多校+组合数+逆元+莫队)
- Question20171231 聊聊为什么32bit只能支持4GB内存