java对象比较

概述

比较分为值比较和引用类型比较。

值比较

即内容相同,我们就认为是相等的。比如:int i=5;int j =5;此时我们说i和j相等,其实指的是i和j的内容相同。

引用类型比较

  1. 两个对象的引用使用==等号比较,是指引用指向的内存地址是否相等,而不是两个对象的内容是否相等。
  • Student a = new Student(); Student b = new Student();
    a == b -> false这里的比较是堆中的两个对象的内存地址是否相同。
  • Student a = new Student(); Student b = a;
    a == b -> true 这里a,b指向同一个对象,因此它们的值指向同一块内存地址,所以是相等的;实际上a,b是两个int型的地址指针,它们也有单独内存空间,等号比较的是a,b两个指针的值,而不它们本身的地址。
  • Java中引用类型变量通常无法获取本身地址,==比较的都是变量被赋予的值(其它对象的内存地址),而不是变量本身的地址,实际上也没必要获取变量本身的地址并比较,因为肯定是不同的。
  1. 使用equals比较
    通常需要重写对象的equals方法,用来比较两个对象的内容是否相同,==比较可能不同,因为执行不同的对象,只是比较对象的内容是否相同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

融极

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值