在C裡面我們想執行一段自己編寫的機器指令的方法大概如下
typedef void(*FUNC)(int);
char* str =
FUNC f = (FUNC)str;
(*f)(
也就是說
ClassLoader的作用是裝載能被JVM識別的指令(當然不只是從磁盤文件或內存去裝載)
魔數以及版本就不說了(滿大街的文件格式都是這個東西)
Exceptions則非常簡單
LineNumberTable保存了字節碼和源碼之間的關系
LocalVariableTable描述了棧幀中局部變量表的變量和源代碼中定義的變量之間的關系
SourceFile指明了生成該Class文件的Java源碼文件名(比如在一個Java文件中申明了很多類的時候會生成很多Class文件)
Deprecated和Synthetic屬性只存在
這樣默認的類會是有Application ClassLoader去加載類
雙親委派模式不是一個強制性的約束
加載完完成後
在Class文件編譯完成之後
那麼我們接下來要去看是方法是如何執行的
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26127.html