另一方面,Java的数据类型可以分为两类。
1 .基本数据类型,也称为原始数据类型:
byte、short、char、int、long、float、double、boolean它们的比较应该用等号==进行比较的是它们的值。
2 .参考数据类型:
JAVA中的所有类都由名为Object的基类继承,并且在Object中的基类中定义了equals的方法。 此方法的初始行为是比较存储在变量(堆栈)内存中的对象的(堆)内存地址,以确定两个对象的地址是否相同,即是否指向同一个对象。 比较是真正意义上的指针操作。
但是,一些类库涵盖了String、Integer和Date等方法。 在这些类中,equals有自己的实现,而不是堆内存中比较类的存储位置。
在引用数据类型之间的equals比较中,这些比较基于内存中存储位置的地址值,即使未重写equals方法。 因为Object的equals方法也以双等号进行比较,所以比较结果与双等号的结果相同。
注意:
比较操作符两端的操作数是否为同一对象。
两侧的操作数必须具有相同的类型才能通过编译。 亲子类之间也可以。
比较的是地址。 如果是具体的阿拉伯数字比较,则值相等时为true。 示例:
int a=10、long b=10L和double c=10.0相同,因为它们指向地址为10的堆。