Java常见问题

反射

1.反射原理
1)在运行期间动态获取内的所有属性及方法,并且能够动态调用对象方法及设置属性的功能称为反射机制

2)反射的实现主要借助4个类,Class、Constructor、Field、Method

3)一般步骤
Class.forname("类名")获取class对象,会触发初始化,如果类没有加载过的话,还会触发类加载
获取构造器,通过Constructor的newInstance或者class的newInstance获取实例
getMethod获取方法
调用Method的invoke方法执行

4)最主要的是方法的获取及调用
方法获取:有一个缓存ReflectionData,是SoftReference的,如果内存不足,可能会被回收掉,如果缓存中能找到method则直接从缓存中获取,如果取不到,则再到jvm中去取

方法执行:

类加载

你可能感兴趣的:(java)