首页 > 其他分享 >equals方法

equals方法

时间:2022-09-03 15:16:25浏览次数:50  
标签:return String 方法 equals value anObject 重写

首先我们知道Java中Object类是所有类的父类,它里面定义了equals()方法:

public boolean equals(Object obj) {
return (this == obj);
}

可以看到是使用= =来进行比较的,

是判断两个对象引用指向的是同一个对象,即比较2 个对象的内存地址是否相等。

注意:如果子类重写了equals() 方法,就需要重写hashCode() 方法,比如String 类就重写了equals() 方法,同时也重写了hashCode() 方法。

Java中重写的equals()
这里我们看一下java的一些自带的包装类怎么重写equals()的:

String.java
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}

我们可以非常清晰的看到String的equals()方法是进行内容比较,而不是单纯的引用比较。

标签:return,String,方法,equals,value,anObject,重写
From: https://www.cnblogs.com/huhansan12138/p/16650098.html

相关文章

  • 自定义控件——视图的构建过程——视图的绘制方法
    视图绘制有两种方法,分别是onDraw和dispatchDraw,它们的区别主要有下列两点: (1)onDraw既可用于普通控件,也可用于布局类视图;而dispatchDraw专门用于布局类视图,像线性布局Line......
  • 八.用例设计方法--等价类、边界值、因果图、判定表法
    八大测试用例设计方法:等价类、边界值、因果图、判定表法、正交试验法、状态图、场景法、测试大纲法;最常用的:等价类、边界值、场景法; (一)等价类1.等价类划分方法是把所有......
  • Sublime Text简单使用方法
    一.新建和保存文件一.点击文件,选择新建文件或者快捷键Ctrl+N二.另存文件,选择保存位置,这里项目的命名以.py为后缀二.保存代码快捷键Ctrl+S,上方文字出现小圆点表示未保......
  • java.lang.UnsupportedOperationException解决方法
    开始的代码:item.setAnswerpics(Arrays.asList(pointscheckentryList.get(i).getProblems_pics().split(","))) 正确的代码:List<String>picsList=Arrays.asList(......
  • 自定义控件——视图的构建过程——视图的测量方法
              对于wrap_content形式的宽高,App需要测量它们的实际长度,需要测量的实体主要有3种:  (1)文本尺寸测量文本尺寸分为文本的宽度和高度,需根......
  • 九月二号——API、java String类的常用方法
    API应用软件编程接口。是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组里程能力,而无需访问源代码,或理解内部工作机制的细节。String类的......
  • pandas的read_csv使用方法总结
    pandas在读取csv文件的时候是通过reaad_csv这个函数进行函数读取的f=open('file.csv',encoding='utf-8')cont=pd.read_csv(f) 其中比较重要的是,在读取csv文件的时......
  • 说说 JSON 格式的弊端与解决方法
    JSON格式是目前最流行的数据交互格式,广泛应用于前后端分离的系统。但也有一些场合不适合使用JSON格式。1JSON格式弊端有这样的一个需求:希望把客户端的日志上传到服......
  • vue中Promise的使用方法详情 vue中 ajax 同步执行
    vue中Promise的使用方法详情目录一、使用1.promise是一种异步解决方案2.asyncawait简介:promise是什么,它可以说是异步编程的一种解决方法,就拿传统的ajax发请求来说,单个......
  • 数据库设计工具Navicat Data Modeler使用方法(含设计案例)
    1NavicatDataModeler介绍1.1简介NavicatDataModeler3.1是一套能帮助你快速直观地构建精确模型的图形化工具,使各个层面的用户都能轻松地创建高品质的数据模型。它......