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

相关推荐
luofeiju13 分钟前
交叉编译笔记
开发语言
StudyWinter41 分钟前
【C++】仿函数和回调函数
开发语言·c++·回调函数·仿函数
C4程序员1 小时前
北京JAVA基础面试30天打卡14
java·开发语言·面试
黑客影儿2 小时前
Go特有的安全漏洞及渗透测试利用方法(通俗易懂)
开发语言·后端·安全·web安全·网络安全·golang·系统安全
LGL6030A2 小时前
Java学习历程14——制作一款五子棋游戏(4)
java
你好,我叫C小白2 小时前
C语言 常量,数据类型
c语言·开发语言·数据类型·常量
小红帽2.03 小时前
从ioutil到os:Golang在线客服聊天系统文件读取的迁移实践
服务器·开发语言·golang
qq_589568103 小时前
javaweb开发笔记—— 前端工程化
java·前端
Zafir20244 小时前
Qt实现TabWidget通过addTab函数添加的页,页内控件自适应窗口大小
开发语言·c++·qt·ui
阿巴~阿巴~4 小时前
深入解析C++非类型模板参数
开发语言·c++