反射

一、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相等,否则还是不相等。

 

posted @ 2020-03-30 18:54  cow09  阅读(133)  评论(0)    收藏  举报