API的調用如何和虛擬機溝通
各位高手您好!!
小弟目前找了一些文章最終還是沒有答案 , 所以上來請教各位前輩以求解惑.
問題是這樣的 ,
平常 JAVA 程序只是在調用那些基本的 API , 最終 API 在和虛擬機
打交道並由 JVM 調用 OS 上真正的 API , 問題是 java 所提供的 API
如何和 JVM 發出請求 ,
ex: 顯示 Hello 到屏幕上通常是System.out.print().
我在 PrintStream 類裡查看 print 成員一直跟蹤下去 , 最後也沒啥發現 ,
我指的發現是再調用過程中會觸發 JVM 的動作 , 這些動作應該是位於底層
api , 而我們一般使用的 api 可能是經過好多層底層 api 所包裝的 , 問題是
底層 api 到底是如何和 jvm 溝通 , 總有一些特殊的地方 , 好比在 X86 上
調用中斷才能觸發 os 真正所提供的服務 , 而 win api 只是提供此中斷調用的
途徑 , 所以我想說 java 的 api 到底有無類似中斷調用的動作在和 jvm 作出
服務請求 ?
在此先謝.
------解决方案--------------------通过JNI,其实如果你看过jre的源代码就知道了