Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでの文字列のインターン


文字列インターンは、すべての個別の文字列値の単一のコピーが格納されるプロセスです。これに加えて、文字列も変更できません。このように、文字列には同じデータを含めることができ、同じメモリを共有することもできます。これにより、必要なメモリが大幅に削減されます。

「インターン」関数が呼び出されたとき-

  • 2つの文字列が等しいかどうか(文字列オブジェクトが文字列定数プール(SCP)に存在するかどうか)をチェックします。

  • 使用可能な場合、文字列はプールからフェッチすることによって返されます。それ以外の場合は、新しいStringオブジェクトが作成され、プールに追加されます。この文字列オブジェクトへの参照も返されます。

  • 2つの文字列「a」と「b」の場合、a.equals(b)がtrueを返す場合、a.intern()==b.intern()はtrueです。

例を見てみましょう-

public class Demo{
   public static void main(String[] args){
      String s1 = new String("Its");
      String s2 = s1.concat("sample");
      String s3 = s2.intern();
      System.out.println("Checking equality of object 2 and 3 :");
      System.out.println(s2 == s3);
      String s4 = "Its a sample";
      System.out.println("Checking equality of object 3 and 4 :");
      System.out.println(s3 == s4);
   }
}

出力

Checking equality of object 2 and 3 :
true
Checking equality of object 3 and 4 :
false

Demoという名前のクラスには、main関数が含まれています。ここでは、Stringオブジェクトの3つのインスタンスが定義されています。ここで、2番目の文字列は、異なる値を持つ最初の文字列の連結です。 3番目の文字列は、2番目の文字列の「intern」への関数呼び出しです。これらの文字列は「==」演算子を使用して比較され、結果がコンソールに表示されます。


  1. JavaのStringIndexOutOfBoundsExceptionとは何ですか?

    文字列は、Javaで文字のシーケンスを格納するために使用され、オブジェクトとして扱われます。 java.langパッケージのStringクラスは、文字列を表します。 文字列は、(他のオブジェクトのように)新しいキーワードを使用するか、(他のプリミティブデータ型のように)リテラルに値を割り当てることによって作成できます。 String stringObject = new String("Hello how are you"); String stringLiteral = "Welcome to Tutorialspoint"; 文字列には文字の配列

  2. Javaのポリモーフィズム

    ポリモーフィズムは、オブジェクトがさまざまな形をとる能力です。 OOPでのポリモーフィズムの最も一般的な使用法は、親クラス参照を使用して子クラスオブジェクトを参照する場合に発生します。 複数のIS-Aテストに合格できるJavaオブジェクトは、多形であると見なされます。 Javaでは、すべてのJavaオブジェクトはポリモーフィックです。これは、どのオブジェクトも、独自のタイプとクラスObjectのIS-Aテストに合格するためです。 オブジェクトにアクセスする唯一の可能な方法は、参照変数を使用することであるということを知っておくことが重要です。参照変数は1つのタイプのみにすることができます。宣