与String.substring的性能考虑有关的问题。在Java 1.7.0_06之前,String.substring()方法返回一个新的String对象,该对象与其父级共享相同的底层char数组,但具有不同的偏移量和长度。为了避免在只需要保留一个小子字符串的情况下在内存中保留一个非常大的字符串,程序员过去常常编写如下代码:
s = new String(queryReturningHugeHugeString().substring(0,3));
从1.7.0_06开始,就没有必要创建一个新的String,因为在String的实现中,子字符串不再共享它们的底层char数组。
我的问题是: