网站救助计划
1.为阅读体验,本站无任何广告,也无任何盈利方法,站长一直在用爱发电,现濒临倒闭,希望有能力的同学能帮忙分担服务器成本
2.捐助10元及以上同学,可添加站长微信lurenzhang888,备注捐助,网站倒闭后可联系站长领取本站pdf内容
3.若网站能存活下来,后续将会持续更新内容
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完整版