Java入门基础:浅显易懂 ==和equals的区别

1.==

用来比较变量的值是否相同

  基本数据类型:比较的是它们的值是否相同

  引用数据类型:比较的是它们的内存地址是否是同一地址
注意:如果比较的是基本数据类型的包装类,比如Integer。那么比较的也是它们的值是否相同,相当于是在比较基本数据类型。因为这里涉及到了包装类的自动装箱/自动拆箱问题。

java 复制代码
	@Test
    public void test10(){
        Integer num = 10;
        if (num == 10){ // 包装类使用 == 比较的是它们的值
            System.out.println("num == 10 结果为 true");   // 会打印这个语句
        }
    }

2.equals()

equals()是Object类中的一个方法,Java中的所有类都继承了Object,因此所有的类都有equals()

java 复制代码
	// Object中定义的 equals()方法如下:
	public boolean equals(Object obj) {
        return (this == obj);
    }

不重写equals():实际使用的也是==操作符,比较的是它们的内存地址是否是同一地址

重写equals():可以自己定义equals()的比较逻辑,一般是用来比较String对象的内容是否相同

相关推荐
Flittly9 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了9 小时前
Java 生成二维码解决方案
java·后端
人活一口气14 小时前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP16 小时前
Vibe Coding -- 完整项目案例实操
java
荣码16 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing16 小时前
Google第三方授权登录
java·后端·程序员
明月光81816 小时前
从一行 @Builder 说起:重新拾起 Java 的 Lombok、注解与 Builder 模式
java
考虑考虑1 天前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯1 天前
GoF设计模式——中介者模式
java·后端·spring·设计模式
青石路1 天前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java