03-==和equals的区别

== 比较的是值

​ 比较基本的数据类型,比较的是数值

​ 比较引用类型:比较引用指向的值(地址)

equals

​ 默认比较也是地址,因为这个方法的最初定义在Object上,默认的实现就是比较地址

​ 自定义的类,如果需要比较的是内容,那么就要学String,重写equals方法

代码案例:测试以下的每道题,你是否能够正确得到答案?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
String s1 = new String("zs");
String s2 = new String("zs");
System.out.println(s1 == s2);//false
String s3 = "zs";
String s4 = "zs";
System.out.println(s3 == s4);//true
System.out.println(s3 == s1);//false
String s5 = "zszs";
String s6 = s3+s4;
System.out.println(s5 == s6);//false
final String s7 = "zs";
final String s8 = "zs";
String s9 = s7+s8;
System.out.println(s5 == s9);//ture
final String s10 = s3+s4;
System.out.println(s5 == s10);//false