日期:2014-05-20  浏览次数:20675 次

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的源代码就知道了