而==比较的内存地址,对于基本数据类型是不需要new 出来的,所以当基本类型数据相等时用==返回的是true。
对应引用型数据,例如String、Integer等等都继承自Object,在Object中equals比较的也是内存地址,但是其子类一般会重写equals方法,这时比较的是对象本身的值而不是内存地址,所以当对象的值相同时返回true,
例如
- String s1="abc";
- String s2="abc";
- s1.equals(s2)
- 返回true
- s1==s2返回false
复制代码
当非基本数据类型通过new产生时其内存地址是不同的,所以当时用==自然返回了false
|