字符串引用另一个字符串的部分? Java的

时间:2012-08-20 22:54:30

标签: java string debugging reference

我可能不在这里,但是看看下面的调试输出,我可以看到line.value引用了与name.value相同的字符串(id = 70)。这两个字符串仅相差.count。什么样的代码会输出类似的结果?这也是优化的结果吗? (如果这是一个有点愚蠢/不恰当的问题,请提前抱歉)。 enter image description here

2 个答案:

答案 0 :(得分:5)

通常String.substring()会这样做。或trim()。 (虽然肯定也有其他人,但这只是最明显的例子。)

由于String是不可变的,因此可以安全地引用另一个字符串的内部字符数组,以避免必须创建大量相同字符数据的冗余副本。

答案 1 :(得分:1)

正如您所看到的,Java字符串由支持char[]以及offsetcount字段组成,指定此字符串后面char[]的部分。

这允许像substring()这样的方法返回一个较小的字符串,而不会实际复制字符。

返回它所调用的字符串的一部分。