徐慧书 发表于 2012-5-1 21:18
那请问,这个String pool 是在哪里开辟的空间,这个存储空间的大小等又有什么特殊的呢? ...
String pool的大小,这个不清楚,它是由jvm设置的,就像堆内存和栈内存,它们的空间不会超过系统为jvm分配的内存空间(默认分配为60M),因为String pool是jvm在系统分配给jvm的空间里,划出来的一部分内存空间。String pool的特殊之处就是它的功能。它是为了节约内存空间而被创建出来的,因为在日常应用中会出现很多相同的字符串,但是它们又不是new String()出来的,为了节约内存空间,就把相同的字符串作为一个字符串存放在String pool中,要用到时,去String pool中找。 |