2016-04-12 8 views
-4

等しい文字列リテラルを持つStringクラスコンストラクターを使用して宣言された2つの文字列オブジェクトは、等価演算子 '=='を使用して比較した場合、同じ文字列リテラルが等しいと指定すると、String Object Equality

String s1 = new String("hello"); 
String s2 = new String("hello"); 
Boolean result1 = (s1 == s2);// returns false 

String s3 = "hello"; 
String s4 = "hello"; 
Boolean result2 = (s3 == s4);// returns true 
+1

はn^n回尋ねられました。 –

+0

この回答はその質問に対する最善の説明です... –

答えて

0

enter image description here S1、S2の2つの異なるオブジェクトであるので、参照はS3の間

等しくない、オブジェクトが文字列プールおよびハローが既にあるように新しいオブジェクトが作成されないS4中に作成されpresent.So s4はhelloオブジェクトの現在のプールを指すだけです。

今や、s3とs4の両方が同じオブジェクトを指しているので、参照は同じです。

ご存知のように==は参照をチェックして真を返すようにします

+0

全く不要です。適切な複製物で閉じるために投票してください。 – Savior

関連する問題