Stringオブジェクトのintern()メソッドのまとめ

838 ワード

char[] a={'a','d','f','r'};
String s = new String(a,0,4);
System.out.println(s==s.intern());
        
String s1 = new String("hello");
System.out.println(s1==s1.intern());

出力:true false
jdk 1を用いる.8
推測:
  • s.intern()は、オブジェクトの参照をメソッド領域に加算する定数プールであり、2つの参照が同じオブジェクトを指す参照を返します.true
  • s1.intern()は、このオブジェクトをメソッド領域の定数プールにコピーし、2つの参照が異なるオブジェクトを指す参照を返します.s1.intern()は定数プール内のオブジェクトを指し,s 1はスタック内のオブジェクトを指す.falseです.
  • 可視stringの作成によって影響が異なります.

  • 注意:
  • 「java」と「Java」はmain関数が実行される前に定数プールで参照されます(推測は対応するオブジェクトでもあります).
  • String s2 = new String(“jav”)+new String(“a1”); String s 3=new StringBuilder("Ja").append(“va2”).toString(); trueでもあります.

  • JAVAにおけるintern()メソッドの詳細
    何枚かの図でStringを簡単に理解できます.intern()
    java定数プールの深入浅出