Java基础 ==与equals的区别
==
简单来说,== 比较的时候时候分为两种情况,如果是int,boolean,char,float这种值类型,那么比较的是值是否相等
如果 == 比较的是两个引用类型,那么比较的是两个的内存地址是否相等。
equals
equals也分两种情况
如果equals没有被重写过,那么比较等价于==
如果equals被重写过,那么比较的是两个对象的内容是否相等。
另外string类型的equals已经被重写过了。
举例
public void test1() {
String a = "qqq";
String b = "qqq"; //保存到字符串缓冲池里,当有相同值的对象,就引用该对象,否则重新创建字符串
System.out.println(a==b); //比较的是地址
System.out.println(a.equals(b)); //比较的是值
此时两个返回值都是true