Java “==”和“.equals()”的区别。

本文详细解析了Java中基础数据类型与引用类型在使用==与.equals()进行比较时的区别。==用于比较基础类型的值及引用类型的内存地址,而.equals()在某些类如String中用于比较对象内容的相等性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从Java数据类型的区别可以得出答案。



==:

Java 基础数据类型:

名称类型所占空间大小(单位:byte)
float点浮型
double-8
byte 整型  1
short-2
int-4
long-8
char字符型2
boolean布尔型未规定空间大小,只能去字面值“ture”或“false”

以上数据类型,变量直接存储的是“值”,使用“==”进行比较时,对比的是"值"本身。

如:

        int i=3;

        int j=3;

        “i==j”对比的是“3”这个值,所以结果为true

对于Java非基础数据类型,变量存储的不是“值”而是关联其对象的“地址”。

如:

        String s1 = new String("string");

        String s2 = new String("string");

        System.out.print(s1==s2);

        以上结果为false,因为s1和s2拥有不同的地址



.equals():

在Object类中,equals()是用来比较两个对象的引用是否相等,即是否指向同一个对象。

### 

在String类中,equals()对比的是其储存的字符串的值。

除了String以外,Double,Date,Integer等,都与String类似。



总结:

对于“==”,如果作用于基本数据类型的变量,则比较的是他们的值。

                如果作用于引用类型的变量,则比较的是他们的地址。

对于“equals()”,首先,它不可以作用于基本数据类型的变量

                如果没有进行重写,则默认对比他们的地址。

                否则对比他们的值。(如String等。)









查看原文:https://www.cnblogs.com/dolphin0520/p/3592500.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值