如果java中的文字永远不会被垃圾收集,那么使用新的String(“String”)构造函数有什么好处

时间:2016-04-15 16:21:39

标签: java string garbage-collection string-literals

What is the purpose of the expression "new String(...)" in Java?

简而言之,问题是从一个巨大的字符串创建一个子字符串 所以作者争辩说最好使用新的String(substring)构造函数,因为substring()返回的字符串将使用相同的char []作为父字符串,所以如果我们不使用new String()那么巨大的文字将仍在使用中。 为了避免不必要的巨大char []占用内存,最好用较小的char []创建新的String对象,从而缩短文字。 然后巨大的char []可以被垃圾收集 但! 因为我学到的文字从来都不是垃圾收集!

Garbage collection of String literals

因此,即使任何局部变量没有指向巨大的char [],它仍然可以保留在文字池中,因此无法有效地使用内存。

0 个答案:

没有答案