java里面==与equal的区别

本文详细解析了Java中==与equals的区别,包括基本数据类型和引用数据类型的比较方式,并重点介绍了String等类中equals方法的重写原理。

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

一、比较对象为基本数据类型(byte,short,char,int,long,float,double,boolean)
比较两个基本数据类型是否相等用==,因为只有类才会有equals方法。

备注:String不是基本数据类型

二、比较对象为引用数据类型

euqals和==本质上都是比较比较的是两个对象的引用(内存地址)是否相同。equals()是Object类的方法 ,object类是所有类的基类,所以每个类都会继承equals()方法。
但在String,Integer,Date在这些类当中重写了equals方法,而不再是比较对象在堆内存中的存放地址了,而是比较它们指向的实体(内容)是否相同。
### Java 编程语言中的运算符列表及其用法 #### 关系运算符 关系运算符用于比较两个操作数之间的大小或相等性。常见的关系运算符有: | 符号 | 描述 | | --- | --- | | `==` | 判断两者的值是否相同 | | `!=` | 判断两者是否不相等 | | `<` | 小于 | | `>` | 大于 | | `<=` | 小于等于 | | `>=` | 大于等于 | 这些运算符返回布尔值,通常应用于条件语句中。 ```java boolean isEqual = (a == b); // 检查 a 和 b 是否相等 if (isEqual) { System.out.println("A equals B"); } ``` #### 算术运算符 算术运算符处理基本的数学计算任务,包括加减乘除以及取模操作。 | 符号 | 描述 | | --- | --- | | `+` | 加法 | | `-` | 减法 | | `*` | 乘法 | | `/` | 除法 | | `%` | 取余 | 对于整型数据类型来说,当使用除法时如果结果不是精确整数,则会向下舍入到最接近的较小整数[^1]。 ```java int result = 7 / 2; // 结果为3而不是3.5 System.out.println(result); ``` #### 赋值运算符 赋值运算符不仅限于简单的`=`,还包括复合形式如`+=`,`-=`,`*=`,`/=`,`%=`. ```java int num = 5; num += 3; // 相当于 num = num + 3; System.out.println(num); // 输出8 ``` #### 逻辑运算符 逻辑运算符主要用于组合多个表达式的真假情况来决定最终的结果。 | 符号 | 描述 | | ---------- | ------------------------ | | `&&` | 并且(短路) | | `\|\|` | 或者(短路或) | | `!` | 非 | 注意区分位运算符`&`和逻辑运算符`&&`. 前者会对每一位进行按位操作,后者则是基于整个表达式的真伪来进行判断,并支持短路特性——即一旦能够确定整体结果就不会再继续评估剩余部分. ```java // 使用 && 实现短路效果 if (isValid() && hasPermission()) { performAction(); } else { showErrorMessage(); } // 如果 isValid 返回 false, 则不会调用 hasPermission 方法. ``` #### 条件运算符 三元运算符是一种简化版的选择结构,它接受三个参数并根据第一个条件表达式的真假选择第二个还是第三个作为输出。 ```java String message = score >= 60 ? "Pass" : "Fail"; System.out.println(message); ``` #### 类型转换运算符 有时需要显式地改变变量的数据类型,这可以通过强制类型转换完成。需要注意的是,这种做法可能导致精度丢失或其他意外行为,因此应当谨慎对待。 ```java double dValue = 9.75; int iValue = (int)dValue; // 显式转换成 int 类型 System.out.println(iValue); // 打印出来的将是 9 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值