1
mercury233 2021-11-10 14:51:33 +08:00
曾经不看教材直接改过 java 代码,被字符串相等的判断坑了一脸,简直不像高级语言
|
2
orangie 2021-11-10 14:58:59 +08:00
只能说,java 很忠实地告诉你两个指针是相等的……乖乖用 equals😑
|
3
AoEiuV020 2021-11-10 15:02:42 +08:00
老面试题了,然而应用层开发压根不该管这个,无脑 equals ,任何时候都不要用==判断字符串相等,
|
4
hidemyself 2021-11-10 15:03:42 +08:00 1
String str1 = new String("ja") + new String("va");
String str2 = str1.intern(); System.out.println(str1==str2); 试下这个 贴一个 R 大的回答 如何理解《深入理解 java 虚拟机》第二版中对 String.intern()方法的讲解中所举的例子? - RednaxelaFX 的回答 - 知乎 https://www.zhihu.com/question/51102308/answer/124441115 |
6
uCharles OP @hidemyself 本来有点了解了,你这举个例子又迷糊了
|
7
anzu 2021-11-10 15:30:02 +08:00
@hidemyself 有拿这个来当面试题的,目的不在于题目本身,而是测试面试人有没有读过这本书,没看过就答不上来。都卷到这地步了。
|
8
SurfaceView 2021-11-10 15:35:02 +08:00
我没记错的话 1.7 和 1.8 的话这个答案还不一样 这种八股文真是没意思。。。
|
9
kop1989 2021-11-10 15:39:31 +08:00
类似的还有 Integer == Integer (伪代码)
虽然我本人不面试后端的应聘者,但能回答正确这个问题,在我本人的心目中肯定是不加分的。 只能证明他 /她真的认真背过题,所以我接下来和他 /她的交流我要小心验证其工作经历,以及其技术掌握度的真实性。 |
10
hidemyself 2021-11-10 15:43:48 +08:00
|
11
LLaMA2 2021-11-11 11:19:37 +08:00
一对双胞胎 Alice 和 Bob,简直一模一样,判断相等的时候能用==吗?不能,应为他们不是同一个人啊。用 equals 就可以。
Alice 有个外号叫 Alex ,现在问你 Alex 和 Alice 相等吗,是的,是==的。 ==说明两者就是一个对象 equals 说明两者一模一样,但不是同一个对象,同时这个一模一样的比较标准取决与对象的 hashcode 实现 |