パンターヴィッキー:
なぜchar配列から作成された文字列が抑留されていませんか?
jshell> var a = "Hello"
a ==> "Hello"
jshell> var b = "Hello"
b ==> "Hello"
jshell> a == b
$67 ==> true
jshell> char[] c = {'H','e','l','l','o'}
c ==> char[5] { 'H', 'e', 'l', 'l', 'o' }
jshell> var d = String.copyValueOf(c)
d ==> "Hello"
jshell> a == d
$70 ==> false
michalk:
これは、あるString
iteralsのみデフォルトで抑留されています。
String::copyValueOf
内部的に新返しますString
:
public static String copyValueOf(char[] var0) {
return new String(var0);
}
あなたはコールする必要がありますので、intern
このメソッドから返され、これは文字列のプールで、この文字列への参照を返します、あなたの文字列に。