我试图理解Java中==和equals与operator之间的区别。 例如==将检查它是否是同一个对象,而equals将比较对象的值...那么为什么我们使用==来比较原始数据类型,如int。 因为如果我有
int i =7; //and
int j = 6.
它们不是同一个对象,也不是堆栈中的相同内存地址。或者==对于基元比较的行为有所不同。??
答案 0 :(得分:8)
实际上,==对所有变量的行为都相同:它测试这些变量的值是否相等。对于Object obj
,obj
是对象的引用。由于==
测试两个对象引用是否具有相同的值,因此它测试它们是否引用相同的对象(即引用是否相等)。
答案 1 :(得分:1)
==
直观地对原始类型有不同的作用。就是这种语言。
如果你用C ++术语来思考它,引用就是指针,==
做指针比较。
int* myPtr1 = new int(5);
int* myPtr2 = new int(6);
myPtr1 == myPtr2;