Java的反射:听课笔记
反射:
API:
Class类:
类的加载
A.获取Class实例的三种方式:
1.Class calazz1= String.class;
2.Class calazz1=person.getClass;
3.class.forName(String classpath);
B.对Class类的理解:也是个类指向到加载到运行的实例的一个类
C.创建Class对应运行时类的通用方法
Object obj=clazz.newInstance()// 创建了对应运行时类的对像
1.必须有空参的构造器
2.权限修饰符的权限要够 通常设置为public
Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是错误的:( )
A .Java反射主要涉及的类如Class, Method, Filed,等,他们都在java.lang.reflet包下//java.lang.class
B.通过反射可以动态的实现一个接口,形成一个新的类,并可以用这个类创建对象,调用对象方法
C.通过反射,可以突破Java语言提供的对象成员、类成员的保护机制,访问一般方式不能访问的成员//反射访问私有成员时,Field调用setAccessible可解除访问符限制
D.Java反射机制提供了字节码修改的技术,可以动态的修剪一个类//反射访问私有成员时,Field调用setAccessible可解除访问符限制
E.Java的反射机制会给内存带来额外的开销。例如对永生堆的要求比不通过反射要求的更多
F.Java反射机制一般会带来效率问题,效率问题主要发生在查找类的方法和字段对象,因此通过缓存需要反射类的字段和方法就能达到与之间调用类的方法和访问类的字段一样的效率//
要爱上写总结,不断的总结。
不断地反省、提升、改变自己。
简单、专注、持久。