posts - 6, comments - 1, trackbacks - 0, articles - 0

          深入JAVA虛擬機系列 1

          Posted on 2008-08-24 13:38 jr4e 閱讀(210) 評論(0)  編輯  收藏 所屬分類: JAVA
          JAVA體系結構-java虛擬機概述

          最初,Sun公司為java體系定義了4個規范:
          java語言;=》規范了源文件
          class文件格式;
          java API;
          java 虛擬機;

          編譯期,java編譯器(javac)將java源文件編譯成class文件;運行期用戶的class文件和java API的class文件在java虛擬機上協同工作。

          java虛擬機最主要的2個作用是裝載class文件和執行這些class文件所包含的字節碼(bytecode)。
          這決定了java虛擬機的主要2個部件是:
          類裝載器 class loader;
          執行引擎 execution engine;

          顧名思義,類裝載器就是把用戶程序的class和java API里的class裝載到執行引擎,但是它僅僅只選擇真正被用到的class進行裝載。

          執行引擎的任務則是執行class文件中的字節碼。由于class文件格式都遵循一種規范,所以執行引擎是可以有多種不同的方式來實現的。比如它可以是一個解釋器,讀一句字節碼,生成一句機器碼,然后執行之,這是典型的解釋器行為; 它也可以在第一次執行某個方法時,將該方法編譯成機器碼,并緩存起來,下次該方法再被調用時它直接執行緩存的機器碼,這其實是編譯行為。所以必須記住,并不是所有的java虛擬機都是解釋器(interpreter)。

          關于JNI(java native interface)
          通過JNI,java允許你的程序調用任何其他語言寫的方法。然而這樣也將使你失去java平臺無關的優勢。建議只用java實現方法或只調用java API提供的native方法。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 承德县| 双牌县| 永定县| 台湾省| 乳源| 大渡口区| 黄冈市| 兰西县| 平舆县| 迁西县| 绥江县| 邯郸市| 鲜城| 化德县| 海伦市| 乌拉特中旗| 饶平县| 洪江市| 东方市| 米脂县| 巴南区| 泰顺县| 汝州市| 宣化县| 华池县| 四会市| 莱阳市| 额敏县| 宜宾市| 嫩江县| 山东| 瑞昌市| 高雄市| 嘉祥县| 宿州市| 彭州市| 甘德县| 鲜城| 佳木斯市| 吉安市| 临澧县|