当前位置: 首页 > news >正文

Java基础之==,equal的区别(温故而知新)-----点点滴滴的积累

1.== 为运算符,equal 为String数据类型的比较方法;相同内容的对象地址不一定相同,但相相同地址的对象内容一定相同;== 比较的是值是否相等,equal比较的是是否是同一个对象。

2.基本概念不同
1)对于==,比较的是值是否相等

如果作用于基本数据类型的变量,则直接比较其存储的 值是否相等, 如果作用于引用类型的变量,则比较的是所指向的对象的地址是否相等。

其实==比较的不管是基本数据类型,还是引用数据类型的变量,比较的都是值,只是引用类型变量存的值是对象的地址

2)对于equals方法,比较的是是否是同一个对象

首先,equals()方法不能作用于基本数据类型的变量,
另外,equals()方法存在于Object类中,而Object类是所有类的直接或间接父类,所以说所有类中的equals()方法都继承自Object类,
在没有重写equals()方法的类中,调用equals()方法其实和使用==的效果一样,也是比较的是引用类型的变量所指向的对象的地址
不过,Java提供的类中,有些类都重写了equals()方法,重写后的equals()方法一般都是比较两个对象的值,比如String类。

两者的区别:
== 为运算符
equal 为String数据类型的比较方法.equal()

两者的比较范围:
一方面是基础数据类型(例如 int a = 1),== 与 equal 都是作用于比较对象内容(堆)是否相同。

另一方面则是引用对象类型(例如 int a = new int(1)), == 与 equal 都是作用于比较对象内存地址(栈)是否相同。
需要注意的是:

1.equal在源码中的实现为一下存在形式,可以被重写
public boolean equals(Object obj) { return (this == obj);}
2.相同内容的对象地址不一定相同,但相相同地址的对象内容一定相同。

http://www.lryc.cn/news/43727.html

相关文章:

  • SpringBoot项目使用切面编程实现数据权限管理
  • 亚马逊测评是做什么的,风险有哪些?
  • 安科瑞导轨式智能通讯管理机
  • vs2010下 转换到 COFF 期间失败: 文件无效或损坏
  • 托福高频真词List19 // 附托福TPO阅读真题
  • Go语言项目标准结构应该如何组织的?
  • 设计模式简介
  • #详细介绍!!! 线程池的拒绝策略(经典面试题)
  • 正则表达式作业
  • 《扬帆优配》交易拥挤度达历史极值 当前A股TMT板块性价比几何?
  • C/C++开发,无可避免的IO输入/输出(篇三).字符串流(内存流)IO处理
  • 什么是HTTP请求?【JavaWeb技术】
  • 浅聊面试这件事
  • 【致敬未来的攻城狮计划】连续打卡第7天+瑞萨RA2E1点亮LED
  • Sam Altman专访:GPT-4没太让我惊讶,ChatGPT则让我喜出望外
  • 弯道超车的机会
  • 【设计模式】创建型模式之原型模式
  • KMP算法——我欲修仙(功法篇)
  • 【嵌入式Linux学习笔记】QT在Linux嵌入式设备上的使用
  • js根据数据关键字实现模糊查询功能
  • java获取对象属性
  • 51单片机(IIC协议OLED屏)
  • 你知道,华为对项目经理要求的3项技能5项素质是什么吗?
  • 优漫动游 提升效率常用的C4D技巧
  • 基于蚁群算法的时间窗口路径优化
  • liunx
  • 机动车发票组件【vue】
  • 学习笔记-剖析k8s之StatefulSet的拓扑状态-3月day18
  • Java实现输出九九乘法口诀表,输入行数输出对应的梯形(平行四边形)这两个代码
  • C++空间配置器