使用"=="进行比较
“==”是运算符,如果是基本数据类型,则比较存储的值,如果是引用数据类型,则比较所指向对象的地址值。
基本数据类型比较
int num1 = 10; int num2 = 10; System.out.println(num1 == num2); //true
引用类型且地址相同
String s1 = "hello"; String s2 = "hello"; System.out.println(s1 == s2); //true
引用类型但地址不同
String s3 = new String("hello"); String s4 = new String("hello"); System.out.println(s3 == s4); //false
使用equals进行比较
equals是一个方法,不能用与比较基本类型。比较的是变量所指向的对象的地址值。一般情况下,类会重写equals方法用来比较两个对象的内容是否相等。
重写前的比较
People p1 = new People(); People p2 = new People(); People p = p2; System.out.println(p1.equals(p2)); //false,p1和p2的地址值不同 System.out.println(p.equals(p2)); //true,p和p2的地址值相同
重写后的比较
String s1 = "hello"; String s2 = "hello"; System.out.println(s1 == s2); //true,比较地址值 System.out.println(s1.equals(s2));//true,比较内容 System.out.println(s1.equals("hello")); //true