当前位置: 首页 > 图灵资讯 > java面试题> java基础面试题-反射原理以及使用场景

java基础面试题-反射原理以及使用场景

来源:图灵教育
时间:2024-05-14 13:46:06
反射原理以及使用场景

 

Java反射:

是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且都能够调用它的任意一个方法;

反射原理:

反射首先是能够获取到Java中的反射类的字节码,然后将字节码中的方法,变量,构造函数等映射成相应的Method、Filed、Constructor等类。

如何得到Class的实例:

1.类名.class(就是一份字节码)2.Class.forName(string className);根据一个类的全限定名来构建Class对象3.每一个对象多有getClass()方法:obj.getClass();返回对象的真实类型

使用场景:

●开发通用框架-反射最重要的用途就是开发各种通用框架。很多框架(比如 Spring)都是配置化的(比如通过XML文件配置Javabean、Filter等),为了保证框架的通用性,需要根据配置文件运行时动态加载不同的对象或类,调用不同的方法。

●动态代理-在切面编程(AOP)中,需要拦截特定的方法,通常,会选择动态代理方式。这时,就需要反射技术来实现了。JDK:spring默认动态代理,需要实现接口;CGLIB:通过asm框架序列化字节流,可配置,性能差;

●自定义注解-注解本身仅仅是起到标记作用,它需要利用反射机制,根据注解标记去调用注解解释器,执行行为。