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

相关推荐
懒虫虫~16 分钟前
通过内存去重替换SQL中distinct,优化SQL查询效率
java·sql·慢sql治理
鼠鼠我捏,要死了捏19 分钟前
基于Redisson的分布式锁原理深度解析与性能优化实践指南
java·高并发·redisson
backordinary29 分钟前
微服务学习笔记25版
java·java-ee
酷飞飞35 分钟前
Qt Designer与事件处理
开发语言·qt·命令模式
ZZHow10241 小时前
Maven入门_简介、安装与配置
java·笔记·maven
天雪浪子1 小时前
Python入门教程之赋值运算符
开发语言·python
小蕾Java1 小时前
Java 开发工具,最新2025 IDEA使用(附详细教程)
java·ide·intellij-idea
Wadli1 小时前
C++语法 | static静态|单例模式
开发语言·c++·单例模式
Tans51 小时前
[小笔记] Java 集合类
java
他们都不看好你,偏偏你最不争气1 小时前
【iOS】AFNetworking
开发语言·macos·ios·objective-c