面试官问我反射的实现原理是什么?
- 问题引出
- 问题
-
- 备注
- 答案
面试官:反射的实现原理是什么?
我:???
问题引出
最近在二刷周志明的《深入理解java虚拟机 第三版》。第一遍囫囵吞枣地看了一遍,第二遍才仔细学习遗漏的细节。突然看到一段之前没有认真看过的话,想起了一个月多前求职面试那会被问到的问题;如下。
问题
面试官:你说一下反射的实现原理是什么?
第1秒的我:原来是这个呀,我了解,就是可以通过。。。
第2秒的我:不对呀,这个是反射的原理呀,不是反射的实现原理呀!
第3秒的我:反射不是JAVA语言的特点吗?不是用C++写的嘛,这超纲了呀。。。
第4、5、6秒的我:假装在思考的样子等面试官给我点提示。
面试官:咳咳(咳嗽了几下),看来你是不知道,那下一道题。
我:面无表情,一脸懵逼。
备注
其实很多面试官都会问:反射怎么使用?请诠释一下反射的原理。请回答一下RPC架构是怎么使用反射的。等。而上面那个问题感觉有点超纲,我当时还去百度上稍微搜索了一下,结果没有得到想要的回答。
答案
直到在书中看到下面的这段话:
通俗的话讲是:在JVM的层面,java的对象饮用不仅要可以直接或间接的接触到对象类型,更应该可以根据索引能得到这个对象的类型数据(对呀的Class对象)。这样的JVM设计使得JAVA可以拥有反射功能。
那以上就是全部的分享了。
参考书籍:
《深入理解java虚拟机 JVM高级特性与最佳实践 》(第3版) 周志明【著】