jvm -java體系介紹

java體系結構包括四個獨立但相關的技術
1.java程序設計語言
2.java class文件格式
3.java應用編程接口(api)
4.java虛擬機


 當編寫並運行一個java程序時,就同時體驗了這四種技術。用java編程語言編寫源代碼,把它編譯成java class文件,然後在java虛擬機中運行class文件。當編寫程序時,通過調用類(這些類實現了java api)中的方法來訪問資源當程序運行的時候,它通過調用class文件中實現了java api的方法來滿足程序的java api調用。


1.3.1 java虛擬機


   java的面向網絡的核心就是java虛擬機,它支持java面向網絡體系結構三大支柱的所有方面:平臺無關性,安全性和網絡移動性


   java虛擬機是一臺抽象的計算機,其規範定義了每個java虛擬機都必須實現的特性,但是爲每個特定實現留下了很多選擇。java虛擬機的主要任務就是裝載class文件並且去執行它的字節碼
 
 java虛擬機包含一個類加載器,它可以從程序和api中裝載class文件,java api中只有程序執行時需要的那些類纔會被加載。字節碼由執行引擎來執行。不同的java虛擬機中,執行引擎可能實現的非常不同。在由軟件實現的虛擬機中,最簡單的執行引擎就是一次性解釋字節碼。另一種執行引擎更快,但是也更消耗內存,叫做"即時編譯器"。
  
1.3.2 類裝載器的體系結構


   類裝載器的體系結構是java虛擬機在安全性和網絡移動性上發揮重要作用的一個方面。一個java應用程序可以使用2種類裝載器:"啓動"類裝載器和用戶定義的類裝載器,啓動類裝載器是java虛擬機實現的一部分。每一個類被裝載的時候,java虛擬機都監視這個類,看它到底被啓動類裝載器還是被用戶定義類裝載器裝載。當被裝載的類引用了另外一個類時,虛擬機就會使用裝載第一個類的類裝載器裝載被引用的類。例如,如果虛擬機使用一個特定的類裝載器裝載了a這個類,它就會使用這個類裝載器裝載a類使用的所有的類。如果a使用了一個叫做b的類,比方說,可能調用了b類的一個方法,那麼虛擬機將使用a的同一個類裝載b,這樣,被這個類裝載器返回的b類就會動態地與a類建立起了聯繫。由於java虛擬機採用這種方式進行類的裝載,所以被裝載的類默認情況下只能看到被同一個類裝載器裝載別的類。通過這種方法,java的體系結構允許在一個java應用程序中建立多個命名空間。這樣典型的例子就是web瀏覽器,web瀏覽器使用用戶定義的類裝載器從網絡下載用於java applet的class文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章