今天写练习, 遇到了一个问题.
instanceof比较的是什么? 和 equals的区别是什么
于是, 我进行了一个测试
/**
*
* @Title testInstanceof.java
* @Prject test
* @Package pers.jssd.test
* @Description TODO
* @author jssd
* @date 2019年4月18日 下午6:03:32
* @version V1.0
*/
package pers.jssd.test;
import java.util.LinkedList;
import java.util.List;
/**
* @ClassName testInstanceof
* @author jssd
*
* @date: 2019年4月18日 下午6:03:32
*/
public class TestInstanceof {
public static void main(String[] args) {
List<People> list = new LinkedList<>();
for(int i = 0; i < 10; i ++) {
People Man = new Man();
People Woman = new Woman();
list.add(Man);
list.add(Woman);
}
for (People people : list) {
System.out.println(people instanceof Man);
System.out.println(people.getClass().equals(Man.class));
System.out.println("=================================");
}
}
}
interface People {
}
class Man implements People{
}
class Woman implements People{
}
结果如图:
所以, instanceof 比较的是Class对象, 当然, equals不重写的话, 比较的是地址