6.6---每天一点点--- Java基础之==和equals区别并举例说明(总复习+深入版)---详细+举例(小白也能看懂)

这篇具有很好参考价值的文章主要介绍了6.6---每天一点点--- Java基础之==和equals区别并举例说明(总复习+深入版)---详细+举例(小白也能看懂)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.== 为运算符,equal 为String数据类型的比较方法

相同内容的对象地址不一定相同,但相相同地址的对象内容一定相同;== 比较的是值是否相等,equal比较的是是否是同一个对象

2.把对象想象成一个房子,而引用则是门牌号。如果两个引用指向同一个房子,那么它们就是相等的;否则它们就不相等。

使用操作符比较的就是两个门牌号是否相等,即它们是否指向同一个房子。如果两个门牌号相等,则返回true;否则返回false。

而使用equals()方法比较的则是两个房子内部的装修是否一样,即它们在逻辑上是否表示同一件事情。如果两个房子内部装修一样,则equals()返回true;否则返回false。

==操作符比较的是两个对象的引用是否相等,即它们是否指向同一个内存地址;而equals()方法比较的是两个对象内容是否相等,即它们在逻辑上是否表示同一件事情。

==操作符通常用于比较基本类型数据(如int、double、boolean等)或判断两个对象是否为同一个实例;而equals()方法通常用于比较复杂类型数据(如String、Object等)或判断两个对象内容是否相等。

举个例子,假设我们有以下代码:

String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");

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

在这段代码中,我们创建了三个字符串对象:str1和str2使用了字面量方式创建,而str3使用了new关键字显式创建。然后我们分别使用==和equals()来比较这三个字符串对象。

第一行输出true,因为str1和str2指向同一个内存地址(常量池中),所以它们的引用相等(即门牌号相同)。

第二行输出false,因为str1和str3指向不同的内存地址(堆内存中),所以它们的引用不相等(即门牌号不同)。

第三行输出true,因为虽然str1和str3引用不同的内存地址(即门牌号不同),但它们表示同一个字符串(内容相等)。

总之,在Java中要正确地比较两个对象是否相等,需要根据具体情况选择合适的方式。对于基本类型数据或判断两个对象是否为同一个实例时可以使用==进行比较;对于复杂类型数据或判断两个对象内容是否相等时应该使用equals()方法来进行比较。

3.操作符比较的是两个对象的引用是否相等,即它们是否指向同一个内存地址。如果两个对象的引用相等,则返回true;否则返回false

String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");

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

在这段代码中,我们创建了三个字符串对象:str1和str2使用了字面量方式创建,而str3使用了new关键字显式创建。然后我们分别使用==来比较这三个字符串对象。

第一行输出true,因为str1和str2指向同一个内存地址(常量池中),所以它们的引用相等。

第二行输出false,因为str1和str3指向不同的内存地址(堆内存中),所以它们的引用不相等。

equals()方法比较的是两个对象的内容是否相等,即它们在逻辑上是否表示同一件事情。如果两个对象的内容相等,则equals()返回true;否则返回false。
举个例子,我们可以再看看之前提到过的字符串对象:

String str1 = "hello";
String str3 = new String("hello");

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

在这段代码中,我们分别创建了两个字符串对象:str1和str3。虽然它们引用不同的内存地址(一个在常量池中,一个在堆内存中),但是它们表示同一个字符串(内容相等)。因此,在使用equals()方法进行比较时会返回true。文章来源地址https://www.toymoban.com/news/detail-473695.html

到了这里,关于6.6---每天一点点--- Java基础之==和equals区别并举例说明(总复习+深入版)---详细+举例(小白也能看懂)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 一点点安全资料:数通知识扩展

    华为防火墙 介绍 华为防火墙是华为提供的一种网络安全产品,设计用来保护企业网络不受未经授权访问和各种网络威胁的侵害。华为防火墙采用先进的技术,以确保网络安全,同时提供高性能的数据处理能力。下面我们就来详细了解一下华为防火墙的特点、工作原理以及配

    2024年04月10日
    浏览(12)
  • 一点点安全资料:网络安全扩展

    简介 SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是加密协议,设计用来提供网络通信的安全性和数据完整性。尽管TLS是SSL的后继者,但两者的核心目标相同:保护网络通信免受窃听和篡改,同时验证通信双方的身份。这些协议主要用在应用层协议(如HTTP)之上,形成如

    2024年04月08日
    浏览(12)
  • 构建之法 - 软件工程实践教学:每天都向前推进一点点

    构建之法 - 软件工程实践教学:每天都向前推进一点点

    作者:福州⼤学 汪璟玢⽼师 汪老师:每次都向前推进一点点,哪怕只有一点点,也好过什么都不做。 ​邹老师:对,几个学期下来,就已经超过那些“空想”的团队很远了。坚持下去! 汪老师:团队Git现场编程实战。 邹老师:这个效果很好,建议在更早的时间让学生实践

    2024年02月13日
    浏览(13)
  • pygame里实现导弹追踪效果,同时对python的指针机制有一点点思考

    pygame里实现导弹追踪效果,同时对python的指针机制有一点点思考

           最近,儿子一直缠着让我把之前给他编写的游戏重做一下,要加一些功能.但是因为之前写代码的时候刚学会python,当时的想法就是能跑就行,现在回头看来,代码的可维护性几乎为零.所以没办法只能冲头再来,重构了几乎所有代码.在编写的时候遇到了一个有意思的问题,儿子

    2024年01月21日
    浏览(55)
  • TypeError: Cannot read properties of undefined (reading ‘dispatch‘)以及一点点的nprogress的错误

    TypeError: Cannot read properties of undefined (reading ‘dispatch‘)以及一点点的nprogress的错误

    在开发项目中遇到这个bug,记录一下解决办法 在入口文件main.js看注册的store有无大小写错误 版本太高 vue2安装3版本的vuex,默认安装的4版本给vue3用 nprogress 在查看完代码无错误后去翻了一下nprogress的使用教程 发现进度条关闭的方法居然是done()不是end()!!!

    2024年02月14日
    浏览(26)
  • 每天一道面试题之==和equals的区别是什么?

    \\\"==\\\"是一个关系运算符 ,关系运算符可以用来进行数据和数据之间的比较,而在java中数据类型大致可以分为两大类分别是 基本数据类型 和 引用数据类型 。 基本数据类型 包含 byte,int,float,double,char,boolean,long,short八种类型。 引用类型 包含类,数组,接口三种类型。

    2024年02月06日
    浏览(9)
  • java八股文面试[java基础]—— hashCode 与 equals 区别 == 与 equals的区别

    java八股文面试[java基础]—— hashCode 与 equals 区别 == 与 equals的区别

    两个对象的hashCode()相同时,equals()相等吗?_两个对象的hashcode一样,equal一样么_不想当个程序员的博客-CSDN博客 equals():比较的是非基本类型的数据的引用地址(即内存地址)是否相同,但是对于重写equals方法的类型,比较的是对象内容是否相同。 hashCode():计算对象实例的哈

    2024年02月12日
    浏览(13)
  • 【JAVA基础】== 与 equals区别

    它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象(基本数据类型 比较的是值,引用数据类型 比较的是内存地址)。 基本数据类型 :byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。 引用数据类型 :

    2024年02月11日
    浏览(7)
  • JAVA中.equals()与 ==的区别

    JAVA中.equals()与 ==的区别

            “==”是 运算符 ,如果是基本数据类型,则比较 存储的值 ;如果是引用数据类型,则比较 所指向对象的地址值 。         equals是 Object的方法 ,比较的是 所指向的对象的地址值 ,一般情况下,重写之后比较的是 对象的值 。 八大数据类型: 整数 byte、sho

    2024年02月08日
    浏览(9)
  • Java 中 == 与 equals() 的区别

    2024年02月15日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包