我存储了大量相等的字符串。价值观不会经常改变。
由于string.intern()
应该只返回引用,因此我将 1 亿个完全相同的字符串列表中的每一个都进行了实习,这些字符串存储在ArrayList
.
我预计 Java 内存会大幅下降,但存储普通字符串与存储字符串显示的差异小于 0.1%。
我错过了什么还是这是预期的行为?
列表生成代码
long max = 100000000;
for(int i =0 ; i < max;i++ ){
list.add("sometextelidedforbrevity".intern());
}
内存使用量为 1 242 360 KB 和 1 242 184 KB。