联系
在Java中,==和equals方法都是用来判断两个数据是否相等。
区别
==对比的是栈中的值,其中基本数据类型对比的是变量值,引用类型对比的是堆中内存对象的地址。
比如在栈中,基本数据类型int i=1;比较的是1 这个值。而引用类型new 一个string,指向的是堆中的地址,对比个是这个地址,所以再new一个字符串即使内容和string一样,但返回的也是false。
equals:只能用于引用类型,object中默认也是采用==比较。通常会重写,在重写后,判断两个对象的属性值是否相同。
总结:因为Java中只有值传递,所以对于==和equals方法来说,比较的都是值,只不过基本数据类型的值是值本身,引用类型的值是对象地址而已。