String的equals和==的小实验
1: String s3="huangyang";
2:
3: String s4="huangyang";
4:
5: System.out.print(s3.equals(s4));
6:
7: System.out.println(s3==s4);
8:
9: String s5=new String("huangyang");
10:
11: String s6=new String("huangyang");
12:
13: System.out.print(s5.equals(s6));
14:
15: System.out.println(s5==s6);
运行结果:
truetrue truefalse
第一种定义String的方式,实际是存储在堆中的同一个位置,所以==显示true,由于同一个位置内容相同,equals显示true;
第二种显示定义字符串为一个类,表明String不是基本类型,而是引用类型,两次声明在堆中定义出两个空间存储s5和s6,尽管他们内容相同,还是两个不同的堆空间存储。
所以equals显示true,==由于看的是比较对象的引用,所以false