同步操作将从 帝八哥/JavaBooks 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
面试遇到这个问题,必须好好的想想如何回答这个问题,我就是这么回答的。害
面试官:反射是什么?
我:在Java的反射机制中是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为 Java 语言的反射机制。
面试官:哦?有什么好处?
我:怎么说呢,跟多态是的,比如在Java程序中许多对象在运行是都会出现两种类型:编译时类型和运行时类型。其中,编译时类型由声明对象时使用的类型来决定,运行时的类型由实际赋值给对象的类型决定 。比如
People = = new Man();
程序在运行的时候,有时候需要注入外部资源,那么这个外部资源在编译时是object,如果想要它的运行时类型中的某个方法,为了解决这些问题,程序在运行时发现对象和类的真实信息,但是编译时根本无法预知该对象和类属于哪些类,程序只能靠运行时信息来发现该对象和类的信息,那就要用到反射了。
面试官:举几个反射的API
我:
面试官:获取class对象的三种方式?
我:
Student student = new Student(); *// 这一new 产生一个Student对象,一个Class对象。*
Class studentClass2 = Student.class; // 调用某个类的 class 属性来获取该类对应的 Class 对象
Class studentClass3 = Class.forName("com.reflect.Student") // 使用 Class 类中的 forName() 静态方法 ( 最安全 / 性能最好 )
面试官:三者区别?
我:
静态属性初始化是在加载类的时候初始化,而非静态属性初始化是 new 类实例对象的时候初始化。它们三种情况在生成 Class 对象的时候都会先判断内存中是否已经加载此类。
面试官:除了通过反射创建对象,还有?
我:new呗,clone一个呗
面试官:反射都有哪些应用场景
我:我可以说Spring,Dubbo,RocketMQ吗?这些优秀的框架背后都用到了反射,这说明,反射的优点之一灵活,提高了代码的灵活度,但同时性能受损。因为反射要进行一系列的解释操作。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。