原始数据类型的==运算符

时间:2011-08-17 18:50:53

标签: java equals primitive

  

可能重复:
  How Does the toString(), ==, equals() object methods work differently or similarly on reference and primitive types?

我试图理解Java中==和equals与operator之间的区别。 例如==将检查它是否是同一个对象,而equals将比较对象的值...那么为什么我们使用==来比较原始数据类型,如int。 因为如果我有

   int i =7; //and 
   int j = 6. 

它们不是同一个对象,也不是堆栈中的相同内存地址。或者==对于基元比较的行为有所不同。??

2 个答案:

答案 0 :(得分:8)

实际上,==对所有变量的行为都相同:它测试这些变量的值是否相等。对于Object objobj是对象的引用。由于==测试两个对象引用是否具有相同的值,因此它测试它们是否引用相同的对象(即引用是否相等)。

答案 1 :(得分:1)

==直观地对原始类型有不同的作用。就是这种语言。

如果你用C ++术语来思考它,引用就是指针,==做指针比较。

int* myPtr1 = new int(5);
int* myPtr2 = new int(6);

myPtr1 == myPtr2;