== 和 equals 的区别是什么?

==:基本类型比较的是值的大小,引用类型比较的是内存地址,是不是同一个对象,equals:默认比较同一个对象的内容

== 和 equals 的区别是什么?

== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象。(基本数据类型 == 比较的是值,引用数据类型 == 比较的是内存地址)

equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况:

情况1:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过”==”比较这两个对象。

情况2:类覆盖了 equals() 方法。一般,我们都覆盖 equals() 方法来两个对象的内容相等;若它们的内容相等,则返回 true (即,认为这两个对象相等)。

public class test1 {
    public static void main(String[] args) {
        String a = new String("ab"); // a 为一个引用
        String b = new String("ab"); // b为另一个引用,对象的内容一样
        String aa = "ab"; // 放在常量池中
        String bb = "ab"; // 从常量池中查找
        if (aa == bb) // true
            System.out.println("aa==bb");
        if (a == b) // false,非同一对象
            System.out.println("a==b");
        if (a.equals(b)) // true
            System.out.println("aEQb");
        if (42 == 42.0) { // true
            System.out.println("true");
        }
    }
}

说明:
String中的equals方法是被重写过的,因为object的equals方法是比较的对象的内存地址,而String的equals方法比较的是对象的值。
当创建String类型的对象时,虚拟机会在常量池中查找有没有已经存在的值和要创建的值相同的对象,如果有就把它赋给当前引用。如果没有就在常量池中重新创建一个String对象。

Original: https://www.cnblogs.com/chaos2022/p/16206737.html
Author: cxc超小超
Title: == 和 equals 的区别是什么?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607492/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【LEETCODE】71、验证二叉树的前序序列化

    简单粗暴,代码有待优化,不过自己独立完成,没有参考任何材料,还是比较满意的 package y2019.Algorithm.stack.medium; import java.ut…

    Java 2023年6月5日
    0103
  • docker 安装mysql5.7

    拉取镜像 docker pull mysql:5.7 准备数据目录 mkdir -p /mall/docker/mysql/conf mkdir -p /mall/docker/m…

    Java 2023年6月9日
    052
  • 2.微服务’黑话’集锦及Eureka注册中心相关概念

    微服务’黑话’集锦 服务提供者 : 业务实现者,封装业务接口同时提供业务实现逻辑 服务消费者 : 业务调用者,调用服务提供者对外暴露的接口 负载均衡 : 同…

    Java 2023年6月8日
    078
  • 操作系统知识点

    操作系统 内核态和用户态 内核态和用户态的区别? 内核态与用户态是操作系统的两种运行级别,当程序运行在 3 级特权级上时,就可以称之为运行在用户态。因为这是最低特权级,是普通的用户…

    Java 2023年6月5日
    076
  • Java Class 文件中Method的存储

    class文件是java编译后的文件类型。其代表一个类,其有专门的存储格式。其中会存放数据也会存放方法,而所谓的方法存放就是将方法中的调用都转换成java字节码指令。所方法调用从机…

    Java 2023年5月29日
    097
  • MongoDB 学习笔记

    概述 MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库中功能最丰富,最像关系型数据库的。 MongoDB 支持的数据结构非常松散,类似 json …

    Java 2023年6月8日
    0169
  • MyBatis&Spring Framrwork

    MyBatis 1.1 概述 MyBatis是一款优秀的持久层框架,用于简化JDBC开发 MyBatis本是Apache的一个开源项目iBatis,2010年这个项目迁移到了goo…

    Java 2023年6月6日
    0129
  • 解决Warning Couldn’t flush user prefs: java.util.prefs.BackingStoreException: Couldn’t get file lock.

    系统:Ubuntu 16.04 LTS 环境:vscode+java extension pack打开了一个gradle的java项目;另外,用一个terminal启动了groov…

    Java 2023年5月29日
    098
  • 20220727-Java中多态总结

    格言:我亦无他,唯手熟尔! 多态polymorphism:方法或者对象具有多种形态 代码示例 // 通过方法重载,展现同一种方法的不同形态 public class PolyMet…

    Java 2023年6月15日
    085
  • java之ethz.ssh2远程执行Linux服务器端shell脚本

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/FCWORLD/p/5254540.htmlAuthor…

    Java 2023年6月6日
    092
  • Java HashMap 四个构造函数

    HashMap():构造一个空的 HashMap ,默认初始容量(16)和默认负载系数(0.75)。 HashMap(int initialCapacity):构造一个空的 Has…

    Java 2023年6月5日
    079
  • 二、哨兵集群

    前面redis的集群已经搭好了,但是主redis宕机了,并不会容灾切换,所以就需要配置哨兵。至于为什么需要3个哨兵,此时就有的说道了,哈哈哈~~~~~~~ 首先说说什么是redis…

    Java 2023年6月5日
    080
  • 【转】京东评价系统海量数据存储设计

    概述 京东的商品评论目前已达到数十亿条,每天提供的服务调用也有数十亿次,而这些数据每年还在成倍增长,而数据存储是其中最重要的部分之一,接下来就介绍下京东评论系统的数据存储是如何设计…

    Java 2023年6月7日
    080
  • 转发和重定向

    forward 是服务器内部的重定向,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,而客户端并不知道,因此在客户端浏览器的地址栏中不回显示转向后的地址,还是原来的…

    Java 2023年6月14日
    094
  • grep: memory exhausted, 记录一次日志查询问题

    今天某个项目的数据有些问题,需要查询日志看看具体的情况 结果在执行 cat .log |grep “关键字”* 命令后包如下错误: grep: memory…

    Java 2023年6月5日
    083
  • quartz框架(五)-Trigger相关内容

    上篇博文,博主介绍了Job的相关内容。本篇博文,博主将介绍Trigger相关的内容。 Trigger是触发器的意思,它只定义Trigger相关属性的Get方法。一个Trigger只…

    Java 2023年6月7日
    098
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球