動態鏈接
- 每一個棧幀當中都包含以個指向運行時常量池重該棧幀所屬方法的引用(invokedynamic指令)
- 在java源文件被編譯到字節碼文件中時,所有的變量和方法引用都作為符號引用保存在class文件的常量池里;
- 比如:描述一個方法調用的另外的其它方法時,就是通過常量池中指向該方法的符號引用來表示,那么動態鏈接的作用就是為了將這些符號引用轉換為調用方法的直接引用。
將.class文件 javap -p 文件名.class 反編譯后,如下圖所示:
常量池的作用
提供一些符號常量,便於指令的識別。