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。

posted @ 2022-06-20 17:57  天下第一木子李  阅读(2060)  评论(1)    收藏  举报