面試官:反射的實現原理是什麼?
我:???
最近在二刷周志明的《深入理解java虛擬機器器 第三版》。第一遍囫圇吞棗地看了一遍,第二遍才仔細學習遺漏的細節。突然看到一段之前沒有認真看過的話,想起了一個月多前求職面試那會被問到的問題;如下。
面試官:你說一下反射的實現原理是什麼?
第1秒的我:原來是這個呀,我瞭解,就是可以通過。。。
第2秒的我:不對呀,這個是反射的原理呀,不是反射的實現原理呀!
第3秒的我:反射不是JAVA語言的特點嗎?不是用C++寫的嘛,這超綱了呀。。。
第4、5、6秒的我:假裝在思考的樣子等面試官給我點提示。
面試官:咳咳(咳嗽了幾下),看來你是不知道,那下一道題。
我:面無表情,一臉懵逼。
其實很多面試官都會問:反射怎麼使用?請詮釋一下反射的原理。請回答一下RPC架構是怎麼使用反射的。等。而上面那個問題感覺有點超綱,我當時還去百度上稍微搜尋了一下,結果沒有得到想要的回答。
直到在書中看到下面的這段話:
通俗的話講是:在JVM的層面,java的物件飲用不僅要可以直接或間接的接觸到物件型別,更應該可以根據索引能得到這個物件的型別資料(對呀的Class物件)。這樣的JVM設計使得JAVA可以擁有反射功能。
那以上就是全部的分享了。
參考書籍:
《深入理解java虛擬機器器 JVM高階特性與最佳實踐 》(第3版) 周志明【著】