
扫码关注微信公众号
回复“面试手册”,获取本站PDF版
回复“简历”,获取高质量简历模板
回复“加群”,加入程序员交流群
回复“电子书”,获取程序员类电子书
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java获取Class对象的三种方式
class Person {
public String name = "zhangsan";
public Person() {
}
}
public class Main{
public static void main(String[] args) throws ClassNotFoundException {
//方式1
Person p1 = new Person();
Class c1 = p1.getClass();
//方式2
Class c2 = Person.class;
//方式3可能会抛出ClassNotFoundException异常
Class c3 = Class.forName("com.company");
}
}
因为在一个类在 JVM 中只会有一个 Class
实例,所以对c1
、c2
、c3
进行equals
比较时返回的都是true
。
反射优缺点:
- 优点:运行期类型的判断,动态加载类,提高代码灵活度。
- 缺点:性能比直接的java代码要慢很多。
反射应用场景:
- Java的很多框架都用到了反射,例如
Spring
中的xml的配置模式等 - 动态代理设计模式也采用了反射机制
本站链接:https://www.mianshi.online,如需勘误或投稿,请联系微信:lurenzhang888
点击面试手册,获取本站面试手册PDF完整版