String和StringBuilder不一样,String有自己独有的恒定性和驻留性,他不受GC管理,那如何释放他的内存的?如果不释放,那岂不是一直变大,最后变得非常大?
并非所有string都是interned string,大多数非interned string有着跟其他引用类型同样的GC规则。对于interned string,确实不受GC管理,而且据我所知也没有办法“手动GC”它们。这就是它的机制,在程序员intern一个string之前,应当知道这个机制带来的后果,人要对自己做的事情负责不是吗?
Bigger than bigger, 苹果这广告就是在讽刺微软的。
你这么担心这个问题,建议投个简历给微软,看看能不能帮我们解决了这问题。
哈哈~~没实力进微软,口语都说不好。没道理啊,既然GC不会自动回收“Intern Pool”的内存,那至少会有手动回收内存的方法啊?!
而且Java也存在这个问题啊,那java是怎么解决的呢?
我的理解就是当内存到一定程度时,GC会回收的,当然,关键在于string的合理利用
最新文章,你可以看一下
http://www.cnblogs.com/anding/p/5240313.html
而且String.concat()这个函数跟“+”有什么区别?
@ismallboy:你听说过“操作符重载”么?就是说可以在程序中把+号变成你想表达的意思。+ 其实和concat是一样的意思
@田麦成: 但是看到一些资料说,少量的字符串连接使用concat(),多的话则使用stringbuilder?