老师:equals 和 == 底层究竟是什么原理啊?有点不懂,能不能解答一下啊?感谢感谢。

来源:2-6 使用泛型

天街

2018-07-01

equals方法的底层实现原理

写回答

1回答

liuyubobobo

2018-07-01

属于Java语法的问题:)


== 判断的是两个对象引用是否指向同一个对象。


可以尝试一下:

Integer a = new Integer(666);
Integer b = new Integer(666);
System.out.println(a == b);


输出的结果是 false,即使 a 和 b 的值都是 666。


但是,下面的语句会输出true,因为equals是“值判断”,a和b的值相等。

System.out.println(a.equals(b));


尝试下面的语句,也会输出 true,因为我们新建立的 c 和 a 指向同一个内存,引用判断的结果为 true。

Integer c = a;
System.out.println(a == c);


:)

0
3
天街
回复
liuyubobobo
嗯嗯……辛苦波波老师啦!?学完了哈西我再问HashMap和CurrentHashMap的原理,以及在实现高并发编程时候的应用。
2018-07-01
共3条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程