在學習Java的過程中,少不了查看JDK文檔,瞭解相關源碼。
但是有的源碼看起來就不是很好理解
比如,一個和註解相關的源碼
小朋友,你是否有很多問號?
爲什麼我就是看不懂這個源碼
這換誰誰第一次也看不懂這代碼。
所以這時候一個強大的工具javap就登場了。
javap:javap是jdk自帶的反解析工具。它的作用就是根據class字節碼文件,反解析出當前類對應的code區(彙編指令)、本地變量表、異常表和代碼行偏移量映射表、常量池等等信息。
一句話:通過反編譯生成的彙編代碼,我們可以深入的瞭解java代碼的工作機制。
好了,那我們就通過反編譯來研究一下這個代碼到底是什麼原理吧。
public @interface A{
}
通過反編譯,我們得到了如下結果
這樣我們就能很好理解了,這就是定義了一個繼承自java.lang.annotation.Annotation的接口A。
我認爲javap是一個很好的用來了解java代碼的工作機制的工具。