JAVA中==和===的区别
简介:
简单理解来说,“==”的意义为等同,而“===”则是恒等。在严格程度方面而言,“===”的判断标准更严格一些。以下做详细区分:
1、“==”
(1)当被判断的两个值类型相同时,直接使用“===”进行判断
(2)如果两个值类型不相同,那么进行下一步判断。
①如果一个为NULL,一个为undefined,那么两值相等。
②如果一个为字符串,一个为数字,那么系统将会把字符串转化成数值进行比较。
③任意值为True,则将其当作 1 进行比较,相对应的,Flase被视为0。
④如果一方为对象,一方为数值或字符串,那么需要将对象转化成基础类型的值进行比较。
例如value of方法和ToString()方法。
2、“===”
(1)类型不同,则不相等。
(2)数值类直接比较是否相等。
(3)字符串类,会严格对照每个位置的字符是否相等,若是则相等,反之,不相等。
(4)两值均为True或Flase,则相等。
(5)两值引用自同一函数或对象,则相等。
(6)两值均为NULL或者均为undefined则相等。
举例:
设 a = "9";
b = 9;
则判别式 a==b 的返回结果为True,但 a===b的返回结果为Flase。
分类:
杂项学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)