equals 和 == 的区别?知乎转载
作者:知乎用户
链接:https://www.zhihu.com/question/26872848/answer/34364603
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
简单易懂
Java 语言里的 equals方法其实是交给开发者去覆写的,让开发者自己去定义满足什么条件的两个Object是equal的。所以我们不能单纯的说equals到底比较的是什么。你想知道一个类的equals方法是什么意思就是要去看定义。Java中默认的 equals方法实现如下:public boolean equals(Object obj) {
return (this == obj);
}
而String类则覆写了这个方法,直观的讲就是比较字符是不是都相同。public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n– != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
醍醐灌顶
https://www.zhihu.com/question/26872848
equals 和 == 的区别?知乎转载相关推荐
- Java,哈希码以及equals和==的区别(转载)
从开始学习Java,哈希码以及equals和==的区别就一直困扰着我. 要想明白equals和==的区别首先应该了解什么是哈希码,因为在jdk的类库中不管是object实现的equals()方 ...
- 【Java常识】6.0面向对象认知和Eclipse的实用使用、==号和equals方法的区别
1.曾经写过很多自以为很通俗易懂的面向对象的解释. 如下是目前最通俗的一种解释: 2.Eclipse的补充解释. 运行的快捷键:F11. 3.Eclipse快捷键大全 大全放本文最后,这里主要放常用的 ...
- JAVA 中equals()与==的区别
原文地址:http://www.chineselinuxuniversity.net/articles/29594.shtml 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存 ...
- c# equals与==的区别
c# equals与==的区别 对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false.对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 ...
- Equals 和 == 的区别
在比较Equals 和 ==的区别前.我们先来了解下相关的知识 C#数据类型 1.值类型 值类型有: 值类型包括:简单类型.结构类型.枚举类型. byte(1).sbyte(1).short(2).u ...
- equals()与==的区别
"=="比较两个变量本身的值,即两个对象在内存中的首地址. "equals()"比较字符串中所包含的内容是否相同. 比如: String s1,s2,s3 = ...
- Equals,ReferenceEquals,==的区别
Equals,ReferenceEquals,==的区别 在.net中有几种比较相等的方法 object的静态ReferenceEquals() object的静态Equals() object的示例 ...
- JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能
JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...
- 面试官:谈谈equals() 和 == 的区别
引言 谈谈equals() 和 == 的区别,这是一个非常经典的问题,不是特别难,面试也时有问道:但是很多小伙伴在面试时脑子却一片空白,痛失offer:所以在这里我详细介绍一下这两者的区别,希望对你能 ...
- Java基础 抽象类和接口的区别、equals 与 == 的区别
一.抽象类和接口有什么区别 抽象类与接口都用于抽象,但是抽象类可以有自己的部分实现,而接口规范某一行为,调用者实现这个接口. 主要区别: 1.抽象类还是类只能单继承,而接口却可以多实现. 2.抽象类满 ...
最新文章
- python参数化_Python unittest 简单实现参数化的方法
- Java反射机制demo(四)—获取一个类的父类和实现的接口
- 2000坐标转换成经纬度_ArcGIS中的坐标问题快问快答
- HD 1525 Euclid's Game
- Ubuntu 14.04 为 root 帐号开启 SSH 登录
- DOCKER windows 7 详细安装教程
- 高能!这些段子已刷爆大学老师朋友圈
- 产品经理如何晋升为产品总监
- mysql监控sql_如何实时监控mysql中的SQL语句的执行情况
- eclipse javafx找不到或无法加载主类_JVM类加载
- @vue-cli的安装及vue项目创建
- IIC协议详解,附单片机软件模拟源码
- 如何将鼠标计算机配置放到板载,罗技G500S游戏鼠标配备有板载内存让鼠标脱离驱动实现自定义功能...
- 【云驻共创】当HarmonyOS走进课堂是种什么体验
- python数据分析之数据分析(步骤)流程
- Dijkstra算法(单源最短路径)
- final修饰局部变量
- 百度开放云·10大解决方案
- VS2013+OBS开发
- mysql,无法修改密码
热门文章
- 中大型计算机代表型号,目前个人计算机主要机型.doc
- java .item,javabb-javaitem-cloud
- JAVA入门级教学之(编写第一个HelloWorld程序)
- 安装应用需要打开未知来源权限_打开安卓这个开关 不让流氓软件肆意妄为
- 求ax bx c 0的根c语言,关于求方程ax2+bx+c=0根的问题
- python判断字符_Python判断字符串是否为字母或者数字(浮点数)
- 安卓手机主题软件_安卓手机安装不了软件原因和方法
- 定点运算和浮点运算_C2000浮点运算注意事项——CPU和CLA的差异及误差处理技巧...
- java 多进程多线程_Java并发编程原理与实战三:多线程与多进程的联系以及上下文切换所导致资源浪费问题...
- python中的seed_Python seed() 函数 - Python 教程 - 自强学堂