gpt4 book ai didi

java - 享元 : Strings already use String pool : Does it makes sense to pool String objects for Flyweight?

转载 作者:搜寻专家 更新时间:2023-10-31 19:30:55 25 4
gpt4 key购买 nike

字符串已经在使用享元设计模式。汇集常见的 String 对象是否有益/性能好?因为字符串已经从字符串池中提取出来了吗?

最佳答案

字符串可以来自很多地方,默认情况下只有字符串文字在字符串池中。例如,当您调用 BufferedReader.readLine() 时,它返回的字符串不在字符串池中。

使用 String.intern() 或规范化映射来汇集这些字符串是否有意义,取决于您有多少重复,以及您可以腾出多少内存来减少重复.

例如,如果您正在阅读 XML 文件,规范化元素名称可能非常有用。如果您正在读取地址数据文件,规范化邮政编码和/或城市名称可能会很有用。但是,在这两种情况下,我都会考虑使用 Map 而不是调用 intern(),因为后者会消耗 permgen 内存(这是比普通堆内存更稀缺的资源).

关于java - 享元 : Strings already use String pool : Does it makes sense to pool String objects for Flyweight?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5504894/

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