首页 > 其他分享 >==和equals的区别

==和equals的区别

时间:2023-06-06 16:58:47浏览次数:21  
标签:false 区别 对象 s2 s1 equals 内存地址

在JAVA中,==与equals都有比较判断对象是否相等的作用,但具体用法却并不相同。

==是运算符号,而equals则属于方法。

当==两边的对象属于基本类型时,==的作用仅是比较对象的值是否相等,如果相等返回true,否则返回false;

当两边的对象属于引用数据类型时,==的作用是判断对象的内存地址是否一致,如果同时指向同一地址,则返回true,否则返回false.

equals两边对象只能属于引用数据类型,因为equals是方法,所以它是如何具体判断对象是否相等是根据程序而定的,

equals是属于 超类object类,默认是判断内存地址是否相同,

但在object的子类中可以重写equals方法,如在String类中只是比较对象内容是否一致,一致 则返回true,否则返回false

比如:

String s1=“abc”;

String s2=“abc”;

s1.equals(s2) 是true 因为equals比较的是对象的内容

而 s1==s2 是false  因为当两边的对象属于引用数据类型时,==的作用是判断对象的内存地址是否相同,

s1和s2创建了不同的对象,所以内存地址肯定不同。

标签:false,区别,对象,s2,s1,equals,内存地址
From: https://www.cnblogs.com/w852894903/p/17461011.html

相关文章

  • 你还在用Object.equals()方法吗?
    前言当《阿里巴巴Java开发手册》发布后,我也是仔细进行了阅读,想从中找出一些“标准”,让自己的代码质量提高。手册中对Object的equals方法的使用进行了强制,而且推荐使用JDK7中工具类Objects的equals方法,至此之后我就很少使用Object.equals()方法了。一、Java开发手册......
  • 数组名和指针区别(转)
    指针和数组名的共同特点是都是用来指代一个地址的。不同的是:1、指针是需要占用内存空间来存储地址的;数组名则更像是一个立即数或者常数。你可以修改指针指向的内容,但你绝对无法改变数组名的指向。2、数组和指针对于sizeof来说是不同的,指针变量占用的空间通常等于当前CPU的最大......
  • java中equals与matches区别
    matches:判断字符是否与指定的正则表达式相匹配equals:判断二个字符串是否相等举例:1.看例题https://www.nowcoder.com/share/jump/3295745116860251147252.看例题https://www.nowcoder.com/share/jump/329574511686025148552总结:一个是判断是否符合正则表达式规则,另一个是判断是......
  • 空间(虚拟主机)与服务器的区别 45.250.42.x
    虚拟主机和服务器,属于被包含的关系,虚拟主机是利用网络空间技术,把一台服务器分成许多的“虚拟小空间”,每一个网络空间都具有完整的Internet服务功能,服务器是真实存在的物理设备;虚拟空间是虚拟出来的主机,是一台服务器里的一部分硬盘空间,一台服务器上存在多个虚拟主机两者在成本方面存......
  • 浅谈mysql索引类型(normal、unique、full textl) 的区别和使用场景
    mysql索引类型mysql索引类型normal,unique,fulltext的区别是什么?normal:表示普通索引unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为uniquefulltextl:表示全文搜索的索引。FULLTEXT用于搜索很长一篇文章的时候,效果最好。用在......
  • 正则表达式中 () 、[] 、{}的区别
    正则表达式的()[]{}有着不同的意思。()是为了提取匹配字符串的,表达式中有几个()就有几个相应的匹配字符串(\s*)表示连续空格的字符串[]是定义匹配的字符范围。比如[a-zA-Z0-9]表示相应位置的字符要匹配英文字符和数字。[\s*表示空格或者*号]{}一般是用来匹配的长度。比如\s......
  • vs中.\ 与 ..\ 区别
    在VisualStudio中,.和..是表示相对路径的两个特殊符号。.表示当前目录,例如:.\file.txt表示当前目录下的文件"file.txt"。..表示上一级目录,例如:..\file.txt表示上一级目录(即父目录)下的文件"file.txt"。.和..在路径表示中的作用是不同的。其中.代表当前目录,通常用......
  • TypeScript Vs JavaScript 区别
    一、观察1.JS平常的复制类型letval;val=123;val="123";val=true;val=[1,3,5];注意点:由于JS是弱类型的,所以只要定义了一个变量,就可以往这个变量中存储任意类型的数据也正是因为如此,所以会给我们带来一个问题2.假设a是一个数组,b是一个数值func......
  • C#中抽象类和接口的区别与使用
    抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。 一、抽象类: 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象......
  • C# 中==与Equals方法比较
    先来段代码,如下:staticvoidMain(string[]args){stringa=newstring(newchar[]{'h','e','l','l','o'});stringb=newstring(newchar[]{'h','e',&......