String s1 = ‘a ‘,String s2 = s1 + ‘b ‘,
场景:String s1="a"String s2 =s1+"b"创造了几个对象
String s1="a",String s2 =s1+"b"创建了几个对象?
String s1="a",String s2 =s1+"b"创建了几个对象?
String s1 = "a"; String s2 = s1 + "b"; String s3 = "a" + "b"; System.out.println(s2); System.out.println(s3); System.out.println(s2 == "ab"); System.out.println(s2.equals( "ab")); System.out.println(s3 == "ab"); System.out.println(s3.equals("ab"));
s1,s2,s3各自有一个对象所以是三个对象,但是s2在数值上等于s3,s2==s3为假而 s2.equals( s3)为真。
String s1,String s2又是一个对象,但是String类中有equals方法,equal比较的是两个对象中的值而不是对象和值,=比较的是对象和值。看似s3=s2但是s3和s2是两个不同的对象。