Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java中的==和equals

java中的==和equals

作者头像
用户1215536
发布于 2018-02-05 07:34:04
发布于 2018-02-05 07:34:04
85000
代码可运行
举报
运行总次数:0
代码可运行

一、使用==判断两个变量是否相等

(1)对于基本类型的变量,值相等则返回true

(2)对于引用类型的变量,只有指向同一个对象时才返回true。

==不可以比较类型上没有父子关系的两个对象。

二、使用equals方法判断两个变量是否相等。

如果没有重新equals方法的话,它与==是没有任何区别的,但是一般都是重写equals方法来定制自己的相等规则。

特别注意:String已经重写了equals()方法,其相等的标准是两个字符串所包含的字符序列相同。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 class toString_test 
 2 {
 3     public static void main(String[] args) 
 4     {
 5         String a=new String("today is friday");
 6         String b=new String("today is friday");
 7         System.out.println(a==b);
 8         System.out.println(a.equals(b));
 9     }
10 }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-08-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
== 和 equals 的区别是什么?
对于上述第三点理解起来可能有点复杂,因为这里 equals 方法比较需要分两种情况来讨论,一种情况是该方法没有被重写,另外一种是该方法被重写。
Breeze.
2022/04/24
2K0
== 和 equals 的区别是什么?
深入解析==与equals()区别
相信大家一定在很多地方多看到过==与equals()的区别,也把区别讲的很详细,每次记住了,很快又会变得模糊不清。 这时就需要从原理深入剖析,一招制敌!
公众号 IT老哥
2020/09/16
3630
深入解析==与equals()区别
Objects.equals有坑
最近review别人代码的时候,发现有个同事,在某个业务场景下,使用Objects.equals方法判断两个值相等时,返回了跟预期不一致的结果,引起了我的兴趣。
苏三说技术
2022/08/25
4330
Objects.equals有坑
Java中 ==与equals的区别
==操作符在Java中用于比较两个对象的引用是否相等。具体来说,当使用==操作符时,它会比较两个对象的引用是否指向内存中的同一位置。如果两个引用指向同一对象,则==返回true;否则返回false。
人不走空
2024/02/20
1480
Java中equals和hashcode的区别
== 运算符用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能使用 “==” 运算符。
程序员Leo
2023/08/02
2000
Java基础提升篇:equals()方法和“==”运算符
equals() 超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等。该方法的源码如下: 1public boolean equals(Object obj) { 2 return (this == obj); 3 } 我们知道所有的对象都拥有标识(内存地址)和状态(数据),同时“==”比较两个对象的的内存地址,所以说使用Object的equals()方法是比较两个对象的内存地址是否相等,即若object1.equals(object2)为true,则表示equa
好好学java
2018/07/02
3170
【Java】07 常见 API
   Object 类是所有类的父类,若一个类没有指定继承的类则继承Object。任一类都直接或间接继承于Object。
Demo_Null
2020/09/28
6400
Java中==和equals()的区别【详解】
正如我们所知,一个变量,如果存储的数据是基本数据类型,那么变量所指向的就是它实际的值,但如果这个变量存储的数据是引用数据类型,那么变量所指向的就是它的引用地址(实际变量值存储在堆内存中,变量名指向的是变量的堆内存地址)。我们有太多场景需要比较两个变量的值是否相等,其中最常用的就是“==”,“==”是一种浅层次的比较,比较的仅仅是变量指向的内容,要么是实际的值,要么是引用地址。对于基本数据类型,我们自然能够得到想要的结果,但对于引用数据类型,我们所比较的仅仅是引用地址,而不是实际的变量值,这不是我们所想要的。所以我们想到了equals()方法,但实际上equals()方法原本与“==”是没有什么区别的,只不过有一些类重写了它,使它能够在比较引用数据类型的数据时比较的是实际的值,下面让我们进行一个详细的探讨;
訾博ZiBo
2025/01/06
950
【Java面试系列】Java 基础常问面试题
面向对象:是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有封装、继承、多态的特性,所以易维护、易复用、易扩展。可以设计出低耦合的系统。 但是性能上来说,比面向过程要低。
山间木匠
2020/12/21
6160
JAVA自动拆装箱、equals与==比较
自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱。
chenchenchen
2023/01/30
4370
Java--==和equals的普遍重写
运行结果: false ################# true ################# false ################# false
Fisherman渔夫
2019/07/30
3570
Java细节:单等于号、双等于号、三等于号(js中才有)的作用及双等于号和equals(源码)的区别
我们在编程时总是会用到=或==,但是等于号都有什么作用呢?下面我们来看一下 (注:下文会提及一点常量池、堆栈,由于本人了解还不是透彻,暂不做解释,日后会做总结,可先点击字面查看理解)
鲲志说
2025/04/07
890
equals和hashCode你学会了么?
作为在Object中的equals方法和hashCode方法,或多或少我们在子类中都有重写过这两个方法,那么我们在重写这两个方法时需要注意些什么?就让我们通过这篇文章来聊一聊。
shysh95
2020/08/07
7330
【趣学程序】java面向对象(二)
Integer,Byte,Float,Double,Short,Long都是Number类的子类。Character和Boolean都是Object直接子类;这8个类都是final修饰的(不可被继承)。
趣学程序-shaofeer
2019/07/27
3890
Java API:Object class
Java API:Object class     首先简单的介绍一下Object类。     java.lang.Object java.lang包子使用的时候,不用显示导入,由编译器自动导入。     Objec(即对象类)是JDK1.0就出现的,是类层次结构的根,是Java中的顶级父类,Java中所有的类都默认直接或者间接的继承Object类。Objec是Java中唯一没有父类的类,任何一个类的对象都可以用Object对象接收。如下: //如下操作都是可以的。 Object o1=new Objec
云飞扬
2018/06/19
6110
Java基础--2021Java面试题系列教程--大白话解读
本教程是系列教程,包含 Java 基础,JVM,容器,多线程,反射,异常,网络,对象拷贝,JavaWeb,设计模式,Spring-Spring MVC,Spring Boot / Spring Cloud,Mybatis / Hibernate,Kafka,RocketMQ,Zookeeper,MySQL,Redis,Elasticsearch,Lucene
JavaPub
2021/01/27
5001
Java基础
JAVA语言编译之后会生成一个.class文件,反射就是通过字节码文件找到某一个类、类中的方法以及属性等。反射机制指的是程序在运行时能够获取自身的信息。在JAVA中,只要给定类的名字,那么就可以通过反射机制来获取类的所有信息。Java
花落花相惜
2021/11/24
1.4K0
【剑指 Java】第 1 弹:靠这份 Java 基础知识总结,我拿到了满意的 Offer
因为博主是 2021 届毕业生,当时为了准备秋招,特意总结的 Java 基础知识面试高频题,最后也算找到了挺满意的工作。因此回馈给大家,希望能对大家起到一定的帮助。
村雨遥
2022/06/15
5140
【剑指 Java】第 1 弹:靠这份 Java 基础知识总结,我拿到了满意的 Offer
Java学习之关系运算符
关系运算符(relational operators)也可以称为“比较运算符”,用于用来比较判断两个变量或常量的大小。
李小白是一只喵
2022/03/21
8010
Java学习之关系运算符
java面试强基(6)
​封装是指把一个对象的状态信息(也就是属性)隐藏在对象内部,不允许外部对象直接访问对象的内部信息。但是可以提供一些可以被外界访问的方法来操作属性。如果属性不想被外界访问,我们大可不必提供方法给外界访问。
一个风轻云淡
2022/11/21
5400
java面试强基(6)
相关推荐
== 和 equals 的区别是什么?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验