==和equals
1.如果比较对象是值变量:只用==
2.如果比较对象是引用型变量:
==:比较两个引用是不是指向同一个对象实例。
equals:
首先Object类中equals的实现是直接调用了==操作。
一个自定义类继承自Object且没有重写equals方法,那么其equals操作也是与Object类一样,仅仅是直接调用==操作。
如果一个类重写过equals方法(或者继承自一个重写过equals方法的类),那么效果与==操作不同
如果是你自己定义的一个类,比较自定义类用equals和==是一样的,都是比较句柄地址, 因为自定义的类是继承于object,而object中的equals就是用==来实现的。
API里的类大部分都重写了equals方法。例如String类
String类型(String本身就是一个类):
==:比较两个str是否是指向同一个对象实例。
equals:比较两个str中的内容是否相同
检查两个引用型变量是否属于同一个Class:instanceof
System.out.println((obj1 instanceof Student) && (obj2 instanceof Student))
时间: 2024-10-08 03:33:18