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

相关推荐
青衫码上行4 分钟前
【从0开始学习Java | 第21篇】网络编程综合练习
java·网络·学习
std78797 分钟前
用C++ 实现屏幕保护程序
开发语言·c++
tumu_C12 分钟前
无用知识研究:在trailing return type利用decltype,comma operator在对函数进行sfinae原创 [二]
开发语言·c++·算法
jjjxxxhhh12316 分钟前
【项目-】Qt + QCustomPlot 实现频谱监测仪:四图联动、高频信号注入、鼠标交互全解析
开发语言·qt·交互
web安全工具库18 分钟前
告别刀耕火种:用 Makefile 自动化 C 语言项目编译
linux·运维·c语言·开发语言·数据库·算法·自动化
小小测试开发34 分钟前
Python Arrow库:告别datetime繁琐,优雅处理时间与时区
开发语言·前端·python
鸽鸽程序猿38 分钟前
【项目】【抽奖系统】注册功能实现
java·开发语言
沐浴露z1 小时前
【JVM】详解 运行时数据区
java·jvm
云泽8081 小时前
C/C++内存管理详解:从基础原理到自定义内存池原理
java·c语言·c++
weixin_307779131 小时前
在Linux服务器上使用Jenkins和Poetry实现Python项目自动化
linux·开发语言·python·自动化·jenkins