关于JAVA对象的假想
question1:String s1="aa";创建了几个String对象?String s2=new String("aa");又创建了几个String对象?两句话有什么区别?
question2: String s1="aa" ;String s2="aa" 创建了几个String对象?String s1=new String("aa"); String s2=new String("aa");又创建了几个对象??
question3:
//////test equals and == Test1.java
class Test1{
pulic static void main(String []args){
String s1=new String("aa");
String s2=new String("aa");
System.out.println("s1==s2"+(s1==s2));
System.out.println("s1.equals(s2)"+s1.equals(s2));
}
}
--------------result:---------------
s1==s2false
s1.equals(s2)true
class Test2{
pulic static void main(String []args){
String s1="aa"
String s2="aa"
System.out.println("s1==s2"+(s1==s2));
System.out.println("s1.equals(s2)"+s1.equals(s2));
}
}
------------result--------
s1==s2true
s1.equals(s2)true
Do explain why it is so here ????