gpt4 book ai didi

java - string.intern 没有使用更少的内存

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:50 26 4
gpt4 key购买 nike

我存储了大量相等的字符串。这些值不会经常更改。

由于 string.intern() 应该只返回引用,我实习了 1 亿个完全相同的字符串列表中的每一个,存储在 ArrayList 中。

我预计会看到 Java 内存下降,但存储普通字符串与驻留字符串的差异小于 .1%。

我是否遗漏了什么或者这是预期的行为?

列表生成代码

    long max = 100000000;
for(int i =0 ; i < max;i++ ){
list.add("sometextelidedforbrevity".intern());
}

不使用内存使用量为 1 242 360 KB,使用内存使用量为 1 242 184 KB。

最佳答案

字符串字面值会自动保留。也就是说,表达式 "sometextelidedforbrevity" 将始终在运行时成为已驻留的 String 对象引用。对已驻留的字符串调用 intern() 实际上是空操作。

关于java - string.intern 没有使用更少的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15555801/

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