ここではマークから外れているかもしれませんが、次のデバッグ出力を見ると、 (id = 70)line.value
と同じ文字列を参照していることがわかります。name.value
2つの文字列は。だけ異なります.count
。どのようなコードが同様の結果を出力しますか?これも最適化の結果ですか?(これが少しばかげた/不適切な質問である場合は、事前に申し訳ありません)。
2 に答える
5
通常String.substring()
はそれを行います。またはtrim()
。(確かに他にもありますが、それは最も明白な例にすぎません。)
sは不変であるためString
、同じ文字データの冗長コピーを大量に作成する必要がないように、別の文字列の内部char配列を参照しても安全です。
于 2012-08-20T22:55:36.910 に答える
1
ご覧のとおり、Java文字列は、この文字列の背後の部分を指定するフィールドchar[]
とともに、バッキングでoffset
構成されています。count
char[]
これにより、呼び出された文字列の一部を返すのようなメソッドはsubstring()
、実際に文字をコピーすることなく、より小さな文字列をすばやく返すことができます。
于 2012-08-20T22:56:39.897 に答える