为什么字符串存储在java中的String Pool中?

时间:2014-09-19 12:10:41

标签: java string

有人可以解释首先对字符串池的需求是什么吗?有什么好处。

1 个答案:

答案 0 :(得分:2)

可以使用池,因为字符串是不可变的。但是String的不变性还没有仅仅因为这个池而决定。不变性还有许多其他好处。顺便说一下,Double也是不可变的,没有双打池。

字符串池的需求是减少保存程序使用的所有字符串文字(以及实习的字符串)所需的内存,因为这些文字在程序的许多地方很有可能被多次使用。您只需要对同一个字符串进行数千个引用,而不是拥有相同字符串文字的数千个副本,这样可以减少内存使用量。

请注意,String类与其他类没有区别:它拥有自己的char数组。但是,当调用substring时,它也可能与其他String实例共享它。