反射
一、Java的反射机制
在运行状态中,对于任意一个类,其他的类都能知道它的所有属性和方法;对于任意一个对象,都能够调用它的任意一个属性和方法。这种动态获取的信息和动态获取对象被称为反射机制。
一般来说,用户使用一个类的时候,先获取这个类,然后通过这个类实例化对象,但是反射则可以相反地通过对象获取对象类中的信息。
二、Java实现反射的三种方式
Foo foo = new Foo()
1、通过Object类的getClass方法
Class cla = foo.getClass();
2、通过对象实例方法获取实例对象
Class cla = foo.class;
3、Class.forName("包路径")的方式
Class cla = Class.forName("包路径")
Object类中一些常用方法:
getClass:返回一个class对象
notify:唤醒监听中的单个线程
notifyall:唤醒监听中的所有线程
toString:返回一个String对象,用来标识自己。
wait:
hashcode:返回对象的地址值
equals:查看地址值是否相等
tip:
1)equals相等,hashcode一定相等,因为比较的是地址值
2)hashcode相等,equals不一定相等。原因:
可以考虑在Java集合中,判断两个对象是否相等的规则是:
第一步,如果hashCode()相等,则查看第二步,否则不相等;
第二步,查看equals()是否相等,如果相等,则两obj相等,否则还是不相等。

浙公网安备 33010602011771号