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对象的内容是否相同

相关推荐
雨中飘荡的记忆几秒前
Spring状态机深度解析:从入门到生产实战
java·spring
Kings901 分钟前
线程池导致的 shutdown失败的完整排查过程
java·spring boot
在坚持一下我可没意见2 分钟前
Spring 后端安全双剑(下篇):JWT 无状态认证 + 密码加盐加密实战
java·开发语言·spring boot·后端·安全·spring
期待のcode6 分钟前
MyBatis-Plus通用枚举
java·数据库·后端·mybatis·springboot
天天摸鱼的java工程师10 分钟前
支付回调处理,咱得整得 “幂等可靠” 不翻车
java·后端
⑩-12 分钟前
Spring 事务失效
java·后端·spring
爱因斯坦乐15 分钟前
【若依】前后端分离添加导入
java·前端·javascript
用户83071968408217 分钟前
Spring Boot JWT登录授权使用指南(无感刷新)
java·spring boot
uup17 分钟前
Redis 缓存击穿
java
deng-c-f17 分钟前
C/C++内置库函数(3):future、promise的用法
c语言·开发语言·c++