“==”和equals都是比较两边的东西。
“==”是比较基本数据类型,像int a=5;int b=5;a和b比较,两个数相同。引用数据类型是比较两个创建对象的地址是否相同
// 基本数据类型的比较
int a = 5;
int b = 5;
System.out.println(a==b);//true
//输出是true
//引用数据类型的比较
//创建一个类
class Add{}
public class Test {
public static void main(String[] args) {
//两个对象的地址不同
Add add = new Add();
Add add2 = new Add();
System.out.println(add == add2);//false
//输出是false
//两个对象都是同一个地址
Add add3 = new Add();
Add add4 = add3;
System.out.println(add3==add4);//true
//输出是true
}
}
equals是先比较两个对象的地址,如果地址不同就会比较创建对象的值
//创建一个类
class Cat{}
public class Equals {
public static void main(String[] args) {
//创建两个对象做比较,这个两个不是一个地址,
Cat cat = new Cat();
Cat cat2 = new Cat();
System.out.println(cat.equals(cat2));//false
//所以这个对象的地址不同,输出是false错的
System.out.println("------");
//这两个对象的地址是一个,
Cat cat3 = new Cat();
Cat cat4 = cat3;
System.out.println(cat3.equals(cat4));//true
//所以输出是true对的
System.out.println("------");
//创建三个字符串作比较
String add1 = "hello";
String add2 = "hello";
String add3 = "word" ;
String add4 = "helloword";
System.out.println(add1.equals(add2));//true
//这两个虽然地址不同,但后面的值是相同的
System.out.println(add1.equals(add3));//false
//两个一看就不一样,false
System.out.println(add4.equals(add1+add3));
//这个是add4和(add1+add3)比较,add1加add3就等于
//拼接好的helloword,地址不同,后面的值相同。
}
}