equals和==的区别_JAVA
程序员文章站
2022-03-15 09:57:09
equals和==的区别总结一下:值类型是存储在内存中的栈中,而引用类型的变量在栈中仅仅是存储引用类型变量的地址,其本身的对象实例数据则存储在堆中。==操作比较的是两个变量的值是否相等,对于引用型变量表示的是比较两个变量在栈中存储的地址是否相同。而equals操作表示两个变量是否是对同一个对象的引用,即堆中的内容是否相同。简单说就是,==比较的是栈内容,equals比较的是堆内容。因此,当equals为真时,==不一定为真。面试回答如果面试官问你《关于==和equals的区别》,该怎么回答完美呢...
equals和==的区别
总结一下:值类型是存储在内存中的栈中,而引用类型的变量在栈中仅仅是存储引用类型变量的地址,其本身的对象实例数据则存储在堆中。
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是比较两个变量在栈中存储的地址是否相同。而equals操作表示两个变量是否是对同一个对象的引用,即堆中的内容是否相同。简单说就是,==比较的是栈内容,equals比较的是堆内容。因此,当equals为真时,==不一定为真。
面试回答
如果面试官问你《关于==和equals的区别》,该怎么回答完美呢?可以这样说
总结的来说:
1)对于==,比较的是值是否相等
如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;
如果作用于引用类型的变量,则比较的是所指向的对象的地址
2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象
如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;
诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
本文地址:https://blog.csdn.net/TOPic666/article/details/107695595
下一篇: java注解基础知识整理
推荐阅读
-
CSS3中:nth-child和:nth-of-type的区别深入理解
-
CSS3中background-clip和background-origin的区别示例介绍
-
php引用和拷贝的区别知识点总结
-
Onmouseover、onmousemove、onclick、onmouseup和onmousedown之间的区别介绍
-
php学习之道:php empty()和isset()的区别
-
php下用GD生成生成缩略图的两个选择和区别_php技巧
-
Java面向对象(1)面向对象的思想概述以及类的介绍,封装和构造方法
-
Java中的增强for循环和break continue的使用 以及流程控制训练
-
mysql中engine=innodb和engine=myisam的区别 (转)_MySQL
-
java中的sleep()和wait()的区别