gpt4 book ai didi

java - 为什么常量字符串使用 intern()?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:01:30 24 4
gpt4 key购买 nike

我了解 JVM 中的字符串池 以及文字字符串对象 之间的区别。我知道文字会自动保留,但是这一行的目的是什么:

public static final String PARAMETER = "value".intern();

关于我的问题,我总能找到大量文本,这些文本对我的解释相同,强调文字和对象之间的区别,并提到文字已经被拘禁了。因此,我想了解在文字上使用 intern() 的棘手行的基础。

最佳答案

这种代码的主要好处是防止编译时常量被内联。

例如,假设您在一个类中有一个常量,并且您有许多其他类引用该常量。通常,如果更改常量值,则需要重新编译所有涉及的类。在该字段上使用 intern() 将阻止常量的内联,这意味着只需重新编译您的常量类就足够了。从理论上讲,这种方法的性能会较差,但我不知道这可能有多重要。

This SO question涵盖同一主题,是一本有用的读物​​。

关于java - 为什么常量字符串使用 intern()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21260072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com