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。

浙公网安备 33010602011771号