java对象比较

导读:本篇文章讲解 java对象比较,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

概述

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

值比较

即内容相同,我们就认为是相等的。比如: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方法,用来比较两个对象的内容是否相同,==比较可能不同,因为执行不同的对象,只是比较对象的内容是否相同。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/100389.html

(0)
小半的头像小半

相关推荐

半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!