一:首先是”==“
String s1="hello";
String s2=new String("hello");
String s3=s2;
System.out.println(s1==s2);
System.out.println(s1==s3);
System.out.println(s2==s3);
这三个的String内容都一样的,但是输出结果却是
false
false
true
栈 堆
”==“号就是比较对象的地址,而不是对象里的内容。
二:"equals”与“==”刚刚好相反
但是值得注意的是Object类里的equals方法默认是比较地址的
因为equals是比较对象的内容的,所以相应的代码我就不写了。
三,就是String就是引用类,比如
String所生成的对象的内容是不能改变的,只能是新建一个内存