gpt4 book ai didi

java - 为什么String类要这样设计呢?

转载 作者:行者123 更新时间:2023-12-02 09:09:35 25 4
gpt4 key购买 nike

为什么String类的设计方式是该类的实例被池化并且不可变?

谢谢和问候,维迪亚卡·夏尔马。

最佳答案

字符串对象通常不会被池化 - 只有字符串常量会通过实习自动池化。 (当然,您可以手动调用intern,甚至可以通过HashSet<String>等创建您自己的池。)这只是安全的因为字符串是不可变的 - 确保任何编译都是有意义的-时间常数在内存中只出现一次。

您不想为系统中的每个字符串在实习池中查找字符串(或永远保留它)付出代价,因为可能有许多不同的字符串时间。然而,只要这些类存在,从类加载的字符串常量就会一直存在,并且通过将它们驻留一次,您可以减少 GC 流失所需的内存。

关于java - 为什么String类要这样设计呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7418450/

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