Java有字符串池,因为字符串类的对象是不可变的.
但我的问题是 -
制作String POOL需要什么?
为什么字符串类没有像其他类一样保存自己的值?
内部JVM是否需要一些字符串,或者这是性能优势.如果有,怎么样?
可以使用池,因为字符串是不可变的.但是String的不变性还没有仅仅因为这个池而决定.不变性还有许多其他好处.BTW,a Double
也是不可变的,并且没有双打池.
对字符串池的需求是减少保存程序使用的所有字符串文字(和实习的字符串)所需的内存,因为这些文字在程序的许多地方很有可能被多次使用.您只需要对相同的String进行数千次引用,而不是拥有相同String字符串的数千个副本,这样可以减少内存使用量.
请注意,String类与其他类没有区别:它拥有自己的char数组.但是,当调用substring时,它也可以与其他String实例共享它.
归档时间: |
|
查看次数: |
3656 次 |
最近记录: |