未分類 27 1 月 2022 [ Java ] String str1 = new String(“悟空”) + new String(“八戒”); String str2 = str1.intern(); [ Java ] String str1 = new String(“悟空”) + new String(“八戒”); String str2 = str1.intern(); 資深大佬 : sugz 25 System.out.println(str1 == str2);true今天看了常量池这个东西,感觉都绕晕了 大佬有話說 (11) 資深大佬 : mercury233 曾经不看教材直接改过 java 代码,被字符串相等的判断坑了一脸,简直不像高级语言 資深大佬 : orangie 只能说,java 很忠实地告诉你两个指针是相等的……乖乖用 equals 資深大佬 : AoEiuV020 老面试题了,然而应用层开发压根不该管这个,无脑 equals ,任何时候都不要用==判断字符串相等, 資深大佬 : hidemyself 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 主 資深大佬 : sugz @AoEiuV020 哎,太卷了 主 資深大佬 : sugz @hidemyself 本来有点了解了,你这举个例子又迷糊了 資深大佬 : anzu @hidemyself 有拿这个来当面试题的,目的不在于题目本身,而是测试面试人有没有读过这本书,没看过就答不上来。都卷到这地步了。 資深大佬 : SurfaceView 我没记错的话 1.7 和 1.8 的话这个答案还不一样 这种八股文真是没意思。。。 資深大佬 : kop1989 类似的还有 Integer == Integer (伪代码)虽然我本人不面试后端的应聘者,但能回答正确这个问题,在我本人的心目中肯定是不加分的。只能证明他 /她真的认真背过题,所以我接下来和他 /她的交流我要小心验证其工作经历,以及其技术掌握度的真实性。 資深大佬 : hidemyself @anzu @kop1989 额,这个我还真会。。大环境就是这样,面试动辄底层源码实现,各种偏题怪题,有什么办法?我面的大多数都会问 GC 调优,但是在我有限的职业经历中,需要开发者去 GC 调优的情况基本没有,只能背更不用说 資深大佬 : ye4tar 一对双胞胎 Alice 和 Bob,简直一模一样,判断相等的时候能用==吗?不能,应为他们不是同一个人啊。用 equals 就可以。Alice 有个外号叫 Alex ,现在问你 Alex 和 Alice 相等吗,是的,是==的。==说明两者就是一个对象equals 说明两者一模一样,但不是同一个对象,同时这个一模一样的比较标准取决与对象的 hashcode 实现