一、Object类中的equals方法

所有类都从Object类中继承了equals方法。

Object类中equals方法源代码如下:

public boolean equals (Object obj)

{

return this == obj;

}

Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一个对象,所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的是同一块内存对象,则返回true,如果指向的不是同一块内存,则返回false。注意:即使是内容完全相等的两块不同的内存对象,也放回false。

即:如果是同一块内存,则object中的equals方法返回true,如果是不同的内存,则返回false。

如果希望不同内存但相同内容的两个对象equals时返回true,则我们需要重写父类的equals方法。

class A

{

int i;

public A(int i)

{

this.i = i;

}

// public boolean equals(Object obj) //如果希望不同内存但相同内容的两个对象equals时返回true,则重写父类的equals

// {

// A aa = (A)obj;

// if(this.i == aa.i)

// return true;

// else

// return false;

// }

}

public class TestEquals_1

{

public static void main(String[] args)

{

A aa1 = new A(3);

A aa2 = new A(3);

System.out.println(aa1.equals(aa2)); //false

}

}

二、String类中的equals方法

String类已经重写了Object中的equals方法。

String类的equals方法是用来判断两个对象的内容是否相等,Object类的equals方法是用来判断两个对象是否是用一个对象。

public class TestEquals_2

{

public static void main(String[] args)

{

String str1 = new String("China");

String str2 = new String("China");

System.out.println(str1.equals(str2)); //true

System.out.println(str1 == str2); //false

String str3 = "China";

String str4 = "China";

System.out.println(str3.equals(str4)); //true

System.out.println(str3 == str4); //ture

}

}

java class equals_Java中equals方法的用法相关推荐

  1. java中equals方法的用法以及==的用法(转)

    2019独角兽企业重金招聘Python工程师标准>>> equals 方法是 java.lang.Object 类的方法. 有两种用法说明: (1)对于字符串变量来说,使用" ...

  2. java里equals_Java中equals和==的区别

    java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==), ...

  3. java map equals_Java HashMap equals()方法

    Java HashMap equals()方法 java.util.HashMap.equals() 方法用于检查两个HashMap之间的相等性.它验证作为参数传递的一个映射的元素是否等于该映射的元素 ...

  4. Java中equals()方法和==的区别分析

    Java中equals方法和==的区别分析 equals(Object obj)方法,将对象与传入的obj进行比较,相等返回true,否则返回false.equals方法和"==" ...

  5. Java实验:重写equals方法

    (1)实验题目:实现一个名为Value 的类,其中含有一个字符类型的成员x 和双精度类型的成员y.请重写(override)其equals( )方法,使得用equals( )比较Value 类的两个对 ...

  6. Java基础知识之equals方法

    <Java核心技术> 1.equals方法介绍以及重写 Object类中的equals方法是用于检测两个对象是否相等,在Object类中equals方法的具体实现是确定两个对象引用是否相等 ...

  7. PHP中魔术方法的用法

    PHP中魔术方法的用法 /** PHP把所有以__(两个下划线)开头的类方法当成魔术方法.所以你定义自己的类方法时,不要以 __为前缀. * */// __toString.__set.__get__ ...

  8. python中sorted_Python中sorted()方法的用法

    Python中sorted()方法的用法 2012-12-24 22:01:14| 分类: Python |字号 1.先说一下iterable,中文意思是迭代器. Python的帮助文档中对itera ...

  9. php中dump怎么使用,php中var_dump()方法的用法简介

    摘要 腾兴网为您分享:php中var_dump()方法的用法简介,支付旭尊,鑫钱袋,携程,小米音乐等软件知识,以及星票网,dc,新房购置税计算器,听中国app,xbox360,当游游戏盒,蜗牛二手货车 ...

最新文章

  1. 130万奖金池!国家智能网联汽车创新中心ICV创新算法攻关任务报名通道火热开启!...
  2. TCP三次握手与四次分手
  3. c语言程序设计网课作业答案,《C语言程序设计》作业答案
  4. python max函数_使用'key'和lambda表达式的python max函数
  5. 安卓手机管理器_电脑文件快速搜索有everything,那手机呢?
  6. C#在Linux上的开发指南
  7. C++工作笔记-作用域的巧妙使用,释放堆区创建的资源
  8. 【网络信息安全】鉴别和密钥分配协议
  9. 批量ssh免密登陆远程主机
  10. 语音自动识别文字软件
  11. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 04课
  12. 虚拟机和主机之间建立虚拟磁盘
  13. 《数据虚拟化:商务智能系统的数据架构与管理》一 1.8 数据虚拟化的不同实现...
  14. html+css基础教程之html简介和元素
  15. animation unity 速度_Unity中用Timeline实现动画特写(上)
  16. bzoj4567【SCOI2016】背单词
  17. macOS Big Sur 11.6 (20G165) 虚拟机 IOS 镜像
  18. ATECC508A芯片开发笔记(一):初识加密芯片
  19. CSS单行省略和多行省略
  20. ArcGIS批量出图操作流程(附练习数据下载)

热门文章

  1. 在命令提示符中运行java代码
  2. 小谈苹果M1芯片性能
  3. 华为HCIP安全 723笔记
  4. Oracle行转列、列转行的几种方法
  5. 苹果6访问限制密码4位_苹果应用软件和服务系统被爆出55个漏洞
  6. Python 量化交易系列教程
  7. 有序集合对象 ZSet 的底层原理
  8. leetocde 518 零钱兑换II
  9. IT人论房价 (二) 华为何逃离深圳,深圳怎么了
  10. Vue.js+ECharts:堆叠柱状图