JAVA - equal 和 == 等号比较

文章讨论了Java中`==`操作符和`equals()`方法在比较基本数据类型和引用数据类型时的不同行为。对于基本类型,`==`比较值;而对于引用类型,`==`比较对象的内存地址。`equals()`默认行为与`==`相同,但某些类如String和Integer重写了该方法以比较内容。示例展示了`equals()`在Integer对象比较时基于值返回结果,而`==`则基于引用返回结果。
摘要由CSDN通过智能技术生成

== 号 

==号比较的是栈中的数据

==可以用于基本数据类型和引用类型 

对于基本数据类型,数据存储在栈中,因此==判断的是值是否相同

对于引用数据类型,栈中存储的是对象在堆中的引用地址,因此==比较的是对象在栈中保存的引用(地址)是否相同

 equal方法

equals()是Object类的方法 ,object类是所有类的基类,所以每个类都会继承equals()方法 

equals只能用于引用数据类型

Object类中的equals方法和==一样都是比较两个对象的引用(内存地址)是否相同,但在String,Integer,Date在这些类当中重写了equals方法,不再是比较对象在堆内存中的存放地址,而是比较它们指向的实体(内容)是否相同 

 

Integer a1 = new Integer(200);

Integer a2 = new Integer(200);

System.out.println(a1.equals(a2));//equals比较的是值,都是200,结果是true

System.out.println(a1==a2);//==比较的是地址,因为是2个对象,所以地址不同,是false

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值