- 基本数据类型,比较的是值
- 引用数据类型,比较的是对象的地址
下图中,value1
value2
是两个 int
类型的变量,栈内存中存放的是变量的值, value1 == value2
等价于 3 == 3
结果为 true
。 person1
person2
是两个 Person
类的引用,栈内存中存放的是对象的地址,person1 == person2
等价于 0x1234 == 0xABCD
,结果为 false
。
如果我们把引用理解成指针,指针的值就是对象的地址,那么运算符 ==
无论作用于什么类型的变量,其实比较的都是变量本身的值。