- 反射:在程序运行时可以了解一个类的属性和方法,可以动态调用对象调用变量和方法,当程序执行到该代码时才动态的创建对象。反射最主要去堆中获取Class对象。
- Class对象怎么来的?
Class对象是在类加载时,把字节码加载进内存中,此时就会在堆中生成Class对象,存储找着类的原始数据,在Class对象中,原始类的变量 方法 构造函数都是对象,这就是为什么在反射时是用Method对象去调用方法,结构如上图。 - 跟new的对象有什么区别?
new对象会根据Class对象在堆中生成一个新的对象,如果是new的对象在编译时就会在堆中生成Class对象。这就是为什么反射是运行时动态创建对象,而new是静态的。
- Class对象怎么来的?
3. 反射的使用
可以移步看该文章https://blog.youkuaiyun.com/weixin_43854959/article/details/131713425