equals和==的区别_JAVA

2022-07-31,,

equals和==的区别

总结一下:值类型是存储在内存中的栈中,而引用类型的变量在栈中仅仅是存储引用类型变量的地址,其本身的对象实例数据则存储在堆中。

==操作比较的是两个变量的值是否相等,对于引用型变量表示的是比较两个变量在栈中存储的地址是否相同。而equals操作表示两个变量是否是对同一个对象的引用,即堆中的内容是否相同。简单说就是,==比较的是栈内容,equals比较的是堆内容。因此,当equals为真时,==不一定为真。

面试回答

如果面试官问你《关于==和equals的区别》,该怎么回答完美呢?可以这样说

总结的来说:

1)对于==,比较的是值是否相等

如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;

如果作用于引用类型的变量,则比较的是所指向的对象的地址

2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象

如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;

诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。

部分引用于 区别部分 面试回答部分

本文地址:https://blog.csdn.net/TOPic666/article/details/107695595

《equals和==的区别_JAVA.doc》

下载本文的Word格式文档,以方便收藏与打印。