この行で問題に直面しています(以下にコメント):
System.out.println("Using == ::"+s3==s4)
を出力しますfalse
。
ただし、System.out.println(s3==s4)
出力true
.
今、私はなぜこの結果を得ているのか理解できません:
public class string {
public static void main(String[] args){
String s3="Shantanu";
String s4=s3;
String s1=new String("java");
String s2=new String("javaDeveloper");
System.out.println("Using Equals Method::"+s1.equals(s2));
System.out.println("Using Equals Method::"+s3.equals(s4));
System.out.println("Using == ::"+s3==s4);//Problem is here in this line
System.out.println(s1+"Directly printing the s2 value which is autocasted from superclass to string subclass ");
System.out.println("Directly printing the s1 value which is autocasted from superclass to string subclass "+s2);
System.out.println(s3);
}
}
Equals メソッドを使用した出力::false Equals メソッドの使用::true == ::false の使用 javaスーパークラスから文字列サブクラスに自動キャストされたs2値を直接出力する スーパークラスから文字列サブクラス javaDeveloper に自動キャストされる s1 値を直接出力する