Re: [問題] API的調用如何和虛擬機溝通

看板java作者 (big bomb)時間18年前 (2007/06/27 22:14), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/6 (看更多)
※ 引述《hougzou (學無止境,啥時才摔到底?)》之銘言: : ※ 引述《superstition (big bomb)》之銘言: : : (43) : : api , 而我們一般使用的 api 可能是經過好多層底層 api 所包裝的 , 問題是 : : 底層 api 到底是如何和 jvm 溝通 , 總有一些特殊的地方 , 好比在 X86 上 : : 調用中斷才能觸發 os 真正所提供的服務 , 而 win api 只是提供此中斷調用的 : : 途徑 , 所以我想說 java 的 api 到底有無類似中斷調用的動作在和 jvm 作出 : : 服務請求 ? : 老實說,我國文太差,看不太懂題意,所以就雞同鴨講一下! : 請你把 JVM 視為一隻餵他飼料才會有反應的程式,這隻程式一直在系統等著你餵他 : 飼料,這飼料就叫做 bytecode,JVM 會用「直譯」的方式去解讀 bytecode。 : 你要產生 bytecode,就必須寫 Java 程式,Java 編譯器會將 Java Source Code : 「編譯」為 class 檔,裡面內容(成份)就是要餵給 JVM 的飼料。 : (不要跟我吵說用Ruby也能編 bytecode... = =) : 無論你用什麼 API,最終一定是變成飼料丟給 JVM,只是有人可能會將飼料裝罐, : 看起來變成一罐一罐的飼料罷了(jar)。 : 離題了,回頭來說,既然把 JVM 當作一隻普通程式,那麼很自然的她的運作就是 : 透過 OS 來與機器溝通,要與機器溝通,當然就是用 0 或 1 ,而要怎麼寫 JVM, : 就看作者是用怎樣的語言去實作。 : 說到這,不知道有沒有解決你的疑問,如果沒有,就當我沒說吧!! 感謝您的回覆 , 更確切的說 , 依照 bytecode 所用的 java 指令集中 , 有無類似 x86 的 int 指令來達成 真正所提供的服務 , 我看了 java 的指令集似乎沒有 類似指令 , 所以我想知道 API 到底是透過啥麼動作 (如何利用指令集)來告訴 JVM 此 API 所想要的真正服務. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.4.20
文章代碼(AID): #16Wd3CbJ (java)
討論串 (同標題文章)
文章代碼(AID): #16Wd3CbJ (java)