Java文字列の比較


Javaで文字列を比較する場合、equals()メソッドは==よりも優れています.これはjavaにスタックとhip領域が存在し、人間から見れば同じ文字列であるが、異なるhip領域を指す可能性があるためである.
例:
String name1 = "이정우";
String name2 = "이정우";

name1 == name2  ==>True
name1.equlas(name2) ==>True
この場合、==を使用して同じStringオブジェクト(heap領域)を示すことができます.
String name1 = "이정우";
String name2 = new String("이정우");

name1 == name2  ==>False
name1.equlas(name2) ==>True
ただし、name 2などの新しいオブジェクトとして作成されると、name 1のマイルストーンとは異なるマイルストーンスタック領域に格納され、==と確認されると異なる値が得られます.したがって、文字の外観が同じかどうかを簡単にチェックするだけでは、正確な値を得るにはequalsを使用する必要があります.
アレイの場合
String[] a = new String[3];
a[0] = "이정우";
a[1] = "이정우";
a[2] = new String("이정우");

a[0] == a[1] => True
a[0] == a[2] => False
a[0].equlas(a[2]) => True
同じ配列の新しいオブジェクトとして作成する場合は、equalsを使用して新しいStringオブジェクトを示す必要があります.

参考内容:これがジャワ、公費教育