任何人都知道使用 java 编程的 String.intern() 的目的...
如果我使用 intern 普通字符串和 string.intern() 有什么区别
最佳答案
内部字符串存储在字符串池中,而不是一般的堆空间中。在 Java 7 之前,此池位于永久代区域中,但从 Java 7 开始,它已移至堆中,以防止导致 JVM 崩溃的 java.lang.OutOfMemoryError: PermGen space
错误。
总结具有相同文本的内部字符串(.equals() 返回 true)将指向字符串池中的相同对象,即即使 == 操作也会给出 true。使用 new() 创建的具有相同内容(.equals() 返回 true)的普通字符串将为 == 操作提供 false,因为它们指向两个不同的对象。
您可能想阅读一篇好文章Busting java.lang.String.intern() Myths 。我相信它会消除您的大部分疑虑(文章还包含您可以自己执行以查看结果的 Java 示例)。
关于java - java中String.intern()的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20512817/