String s1="hello";
String s2="hello";
String s3="hello"+"world";
System.out.println(s1.equals(s2));//true
System.out.println(s1==s2); //true
System.out.println(s1.equals(s3));//false
System.out.println(s1==s3);//false
Object equals 比较的内存地址;相当于用==
String equals比较的是内容
为什s1/s2属于两个对象 s1==s2返回true:s1赋值hello,当给s2赋值hello时会去堆里找有没有,如果没有就给他赋值,如果有hello就不会赋值而是把它当做s1对象来处理
String s1="hello";
String s2="hello";
String s3= new String("hello");
String s4= new String("hello");
System.out.println(s1.equals(s2));//true
System.out.println(s1.equals(s3));//true
System.out.println(s1==s2); //true
System.out.println(s1==s3);//false
System.out.println(s2==s3);//falseSystem.out.println(s4==s3);//false
只要是new出来的不管内容相不相同都在堆里开辟地址空间,因此System.out.println(s4==s3);//false