在Java语言里 ==和equals的区别
虽然我还没有踏入职场,但是学习Java以来做了很多的学习笔记,在我所看的各种书籍中对这个问题的回答可谓是各有不同,但是我个人感觉它们说的不是很全面,所以自己结合笔记又总结了一点,如果有不周到的地方,还请各位指教一下;
现在很多人会说==和equals方法的不同之处是:==比较的是两个对象的内存地址,而equals比较的是两个对象的内容是否相同,当然这是相当的片面的,好一点的书籍里面对这两个比较方法的说明大多是:equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等。 ==用于比较引用和比较基本数据类型时具有不同的功能:比较基本数据类型,如果两个值相同,则结果为true,而在比较引用时,如果引用指向内存中的同一对象,结果为true。这样的说明本身来说是可行的,但是可能说的简洁了一点,有一些特殊的情况还是需要加以说明的。
我要补充的一点就是对与自定义类型的相等比较应该如何说明,API里的类大部分都重写了equals方法,没有重写的一般是自己写的类,如果是你自己定义的一个类,比较自定义类用equals和==是一样的,都是比较句柄地址,因为自定义的类是继承于object,而object中的equals就是用==来实现的,你可以看源码。
所以在面试的时候在上面的基础上最好加上自定义类型的情况:对于Object类来说,equals方法相当于 == ;即判断的是两个对象的地址是不是相同;对于继承了Object类的子类来说,只有重写了父类的equals方法的类才是判断两个对象的内容!
我想总结了上面良种的回答,才算是最完整圆满的。最后,希望大家面试顺利,找到自己心仪的工作。
在Java语言里 ==和equals的区别相关推荐
- java for循环定义变量,在java语言里for循环里的变量如何声明在外面进行使用。
在java语言里for循环里的变量如何声明在外面进行使用. 关注:142 答案:2 手机版 解决时间 2021-02-01 21:59 提问者懷念那年夏天 2021-01-31 21:11 pub ...
- java ==和=_Java ==和equals()的区别
前言 本篇文章讲的是从JVM角度比较==和equals的区别 一:** Java数据类型分类** Paste_Image.png 1:基本数据类型 又称为原始数据类型,他们之间的比较应该使用(==), ...
- java中的==和equals的区别
关于JAVA中的==和equals函数的区别 今天在研读Thinking in java 时注意到==和equals的区别,于是就通过查看JDK_API才读懂了他们的区别,于是将心得分享一下,望批评指 ...
- java中hashcode和equals的区别和联系
理解: 规范1:若重写equals(Object obj)方法,有必要重写hashcode()方法,确保通过equals(Object obj)方法判断结果为true的两个对象具备相等的hashcod ...
- Java 语言 里如何使用XML,解析XML文本
<?xml version="1.0" encoding="UTF-8"?> <phones><!-- 手机信息 -->&l ...
- java语言里的事件_深入浅析java语言的事件处理
在JAVA程序设计中,事件的处理是非常重要的,尤其是在需要自定义事件和设计JavaBean时.对事件的处理过程有一个完整的认识对于编程是很有帮助的. 下面用一个演示性的例子来说明事件及其处理过程 一. ...
- java字数统计,求大神教我,java语言里的字数统计功能的代码?
importjava.util.HashMap;importjava.util.Map;publicclassGJJJjjj{publicstaticvoidmain(String[]args){// ...
- 面试必问一:Java 中 == 和 equals 的区别你知道吗
面试必问一:Java 中 == 和 equals 的区别你知道吗 前言 关于这个问题,一般初中级面试中都会遇到,还记得我当初实习找工作的时候也遇到了这个问题,现在都还记得自己是怎么回答的:== 是基本 ...
- java语言与其他语言的区别是_Java语言特点有哪些?Java区别其他语言特点详解
Java语言特点有哪些?Java区别其他语言特点详解 Java是目前最流行的编程语言之一,那你知道为什么Java这么火吗?相比其他编程语言,Java的特点又有哪些呢?跟着小编一起来了解一下吧. 一.简 ...
最新文章
- 算法基础知识科普:8大搜索算法之顺序搜索
- CSS揭秘之《背景图案》
- jquery checkbox attr区别prop
- 采用SwipeFreshLayout+Recyclerview实现下拉刷新和上拉加载更多以及CoordinatorLayout的引入
- GitHub 上值得前端学习的数据结构与算法项目
- 新闻评副高职称条件计算机,新闻系列副高职称评审有哪些条件
- 深入JVM虚拟机(四) Java GC收集器
- 什么是脏数据?怎样用箱形图分析异常值?终于有人讲明白了
- Golang教程:类型
- oracle_exporter安装配置,node_exporter安装和配置
- Java Script 练习题
- 如何将多个Execl表格中的数据汇总到一个表中?
- windows服务器如何搭建网站,Windows系列服务器网站搭建详细过程
- 计算机三维制图描述零件绘制过程,AutoCAD三维实体零件图绘制
- 跨域问题No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
- 文献阅读:利用斯托克斯参量验证光波的偏振态
- 青春野狼不做姐控偶像的梦 - 线段树 - 扫描线 - 单调栈
- 内存快速分配和慢速分配
- Gradle plugin requires a newer IDE able to request IDE model level 3.
- Nginx 的入门教程