==和equals闲谈

2024-02-15 17:18
文章标签 闲谈 equals

本文主要是介绍==和equals闲谈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

     一直以为==是比较引用,而equals是比较值,知道前不久才发现,其实==和equals都是比较引用是否相等。

    Object类是所有类的超类,而在Object类中的equals是比较引用,但是我们在对两个String进行比较时,equals实际却是比较的值,而不是比较的引用,可以通过这个例子来看出,String的equals方法是比较值是否相等。

  String str1 = new String("abc"); String str2 = "abc";

  boolean b = str1.equals(str2);通过测试可以发现b是为true的。

 按照常理说,他们两个并不是一个对象,并不像等,可是,为什么呢?因为String重写了Object的equals方法。并且,通过API查找String类,可以发现String的字面量是一个常量。由于String类型在内存中存放方式的特殊性,所以String类的equals方法是比较值。

  和String类似的Date方法重写了equals方法,也是比较值相等。所以在使用equals的时候,要注意是否被重写了。

这篇关于==和equals闲谈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/712019

相关文章

重写equals和hashCode的原则规范

当符合以下条件时不需要重写equals方法:     1.     一个类的每一个实例本质上都是唯一的。     2.     不关心一个类是否提供了“逻辑相等”的测试功能     3.     超类已经改写了equals方法,并且从超类继承过来的行为对于子类也是合适的。     4.     一个类时私有的或者是package私有的,并且可以确定它的equals方法永远不会被调用。(这

Subarray Sum Equals K

Given an array of integers and an integer k, you need to find the total number of continuous subarrays whose sum equals to k. Example 1: Input:nums = [1,1,1], k = 2Output: 2 思路:用prefixsum prefixsu

Marin说PCB之闲谈设计经验之沟通

今天这期小编我不讲解技术,主要是分享一些个人的工作中的一些经验吧,首先给诸位分享的就是小编我的学的降龙十八掌第一式:沟通,为啥要说沟通是第一个我要说的话题呢,这个说来话长了,小编我就长话短说了。 因为对于一个刚刚接触到PCB行业的小白来说吧,你的画图技术能力是一方面,沟通的能力也是很重要的了,我在之前的国外的那家公司的上班的时候,经常听我们主管说的一局话就是学会有效沟通,这样你做事情就会

Java HasCode equals == 的区别

== 用来判断两个值,或者两个对象的内存地址是否一样。 equals equals 方法用来判断两个对象是否相等。equals 是Object 类的方法,默认情况下,比较两个对象是否是同一个对象,内部通过 == 实现。如果想比较两个对象的其他内容,则可以通过重写equals 方法。比如String 就重写了equals 方法。 equals是Object类的方法,默认情况下比较两个对象是否

Java面试题:equals和==的区别与联系分别是什么?

1. ==运算符 ==是一个运算符,其用于比较两个变量的内存地址是否相等;对于基本数据类型(int、char、Boolean等),==比较的是它们的值;而对于引用数据类型的话(String、Object、ArrayList等),==比较的是引用,也就是对象在内存中的地址,即检查两个引用是否指向堆内存中的同一个对象实例。 代码举例: public class Main {public stat

java4Android(23):equals 的使用方法 instance 操作符【==与equals方法的区别】

1:所有类都继承了equals方法 2:“==”表示两端的引用所指是堆内存中的同一对象 3:equals用来比较对象的内容是否相同。什么是对象的内容相同? 3.1 对象的类型相同 3.2 对象的成员变量值相同 4:a instanceof User 判断对象a是否是User类型

【老梁聊IT之Java】Java中“==“与equals()的使用场景详解

在Java编程中,比较两个值是否相等是一个常见的需求。然而,对于初学者来说,"=="和equals()方法之间的区别可能会造成混淆。本文将通过详细的解释和丰富的代码示例,帮助你理解这两个比较操作的使用场景和推荐用法。 "==":引用或基本数据类型的比较 "=="用于比较基本数据类型的值是否相等,或者引用数据类型的引用地址是否相同。 基本数据类型比较 对于基本数据类型,"=="直接比较它们的

闲谈 那么问题来了,黑神话是用什么语言开发的?

蹭个热度,顺便站起身消遣消遣聊聊天 提问:“黑神话工作室的初代程序员否分到原始股?” 我是真不知道,但如果有分股份,那不是一夜暴富,想想就爽吧 评论区求解,图片自取

ISEQUALTO\EQUALS\==这3个的区别是什么?

在C#中,IsEqualTo、Equals 和 == 这三个用法有一些区别: IsEqualTo:这是AutoCAD中特定对象(如Point3d、Vector3d等)的方法,用于比较两个对象是否相等。在AutoCAD二次开发中,通常使用这个方法来比较两个点或向量是否具有相同的坐标值。同时还具体容错参数Tolerance。 Equals:这是C#中所有对象都具有的方法,用于比较两个对象是否相等。

大数据技术之_31_Java 面试题_02_== 和 equals 有什么区别 + String 相关 + 多态 + 传值 + static 加载机制 + 线程

大数据技术之_31_Java 面试题_02 1、== 和 equals 有什么区别?2、为什么需要同时覆写 hashCode 和 equals 方法?3、为什么用 eclipse 重写 hashCode 方法,有 31 这个数字?4、String 相关5、多态6、传值7、static 加载机制8、谈谈你对 HashMap 中 put/get 方法的认识?如果了解再谈谈 HashMap 的扩容