Java種の基本データ型と定数プール

1802 ワード

JAvaの8の基本データ型
|---------------整型
         |-----byte
         |-----short
         |-----int
         |-----long
|---------浮動小数点型
         |-----float
         |-----double
|---------文字
         |-----char
|---------ブール
         |-----boolean       
 
注目すべきはnullキーワードであり、Objectには属しておらず、参照データ型に値が割り当てられていないことを示しています.
例:String name;
           System.out.println(name);//コンパイルエラー、nameは割り当てられていません
           String name = new String();
           System.out.println(name);//nameは「」空の文字列です!
          
           class Temp{
           String name;
         }
          System.out.println(new Temp().name);//出力null
          要約:nullは、参照データ型が値を割り当てていないことを示します.
 
2.  Javaは、実行時の速度を速め、メモリを節約するために、8つのデータ型とStringに定数プールを提供しています.システムレベルのキャッシュのように、面接時に文字列定数プールとnewオブジェクトの違いを尋ねるのが一般的です.equalメソッド、==の使用方法です.
 
  • 直接二重引用符で宣言されたStringオブジェクトは、定数プールに直接保存されます.
  • 二重引用符で宣言するStringオブジェクトでない場合は、Stringで提供されるinternメソッドを使用します.internメソッドは、文字列定数プールから現在の文字列が存在するかどうかを問い合せ、存在しない場合は現在の文字列を定数プールに
  • 入れます.
            String s = new String("1");        s.intern();        String s2 = "1";         System.out.println(s == s2);//false         String s = new String("1") + new String("1");    s = s.intern();      System.out.println(s.intern());      String s2 = "11";      System.out.println(s == s2);//true
     
          String s3 = new String("1") + new String("1");      s3.intern();      String s4 = "11";      System.out.println(s3 == s4);  //false
     
    質問:String s 3=new String("1")+new String("1");
    全部でいくつのオブジェクトが作成されましたか.どれですか.上の間違いを指摘することを歓迎します.