如果字符串常量池中已经存在对应的字符串时,此时返回的是字符串常量的地址【常量池中存储的是字符串】,如果字符串常量池中不存在对应的字符串,此时会把堆中的引用放在常量池对应的位置【常量池中存储的是堆中字符串的引用】,此时intern返回的是堆中字符串对应的引用。

当我们准备面试时,一直在背诵“实现equals方法的同时也要实现hashCode方法”,牢记这些结论并没有错。但我们也不能因为匆忙准备面试题,而忘记了这些面试题之所以频繁出现的原因是什么。当深入探索之后,会发现在那些枯燥的结论背后还有这么多不容忽视的知识点,还有这么多有意思的设计与陷阱。