Java已經成為一個龐大而複雜的技術平台,對於開發人員而言,要想更好的掌握Java技術,深入理解底層的技術處理細節必不可少。現在介紹下java的四個核心概念:
1.Java虛擬機器
Java虛擬機器的主要任務是裝在class檔案並且執行其中的位元組碼。Java虛擬機器包含一個類裝載器,它可以從程式和 API中裝載class檔案。Java API中只有程式執行時需要的那些類才會被裝載。位元組碼由執行引擎來執行。不同的Java虛擬機器中,執行引擎可能實現得非常不同。在由軟體實現的虛擬機器中,最簡單的執行引擎就是一次性解釋位元組碼。
另一種執行引擎更快,但是也更消耗記憶體,叫做"即時編譯器(just-in-time compiler)"。在這種情況下,第一次被執行的位元組碼會被編譯成本地機器代碼。編譯出的本地機器代碼會被緩衝,當方法以後被調用的時候可以重用。
第三種執行引擎是自適應最佳化器。在這種方法裡,虛擬機器開始的時候解釋位元組碼,但是會監視運行中程式的活動,並且記錄下使用最頻繁的程式碼片段。程式啟動並執行時候,虛擬機器只把那些活動最頻繁的代碼編譯成本地代碼,其他的代碼由於使用得不是很頻繁,繼續保留為位元組碼-由虛擬機器繼續解釋它們。
一個自適應的最佳化器可以使得Java虛擬機器在80%~90%的時間裡執行被最佳化過的本地代碼,而只需要編譯10%~20%的對效能有影響的代碼。
2.類裝載器的體繫結構
一個Java應用程式可以使用兩種類裝載器:"啟動(bootstrap)"類裝載器和使用者定義的類裝載器。啟動類裝載器(這是系統中唯一的)是Java虛擬機器實現的一部分。啟動類裝載器通常使用某種預設從本地磁碟中裝載類,包括Java API類(啟動類裝載器也被稱為原始類裝載器、系統類別裝載器或者預設類裝載器)。
Java應用程式能夠在運行時安裝使用者定義的類裝載器,這種類裝載器能夠使用自訂的方式來裝載類。例如,從網路下載class檔案。儘管啟動類裝載器是虛擬機器實現的本質部分,而使用者定義的類裝載器不是,但使用者定義的類裝載器能夠用Java來編寫,能夠被編譯成class檔案,能夠被虛擬機器裝載,還能夠像其它對象一樣執行個體化。
3.Java class檔案
Java class檔案主要在平台無關性和網路移動性方面使Java更適合網路。它在平台無關性方面的任務是:為Java程式提供獨立於底層主機平台的二進位形式的服務。這種途徑途徑打破了C或者C++等語言所遵循的傳統,使用這些傳統語言寫的程式通常首先被編譯,然後被串連成單獨的、專門支援特定硬體平台和作業系統的二進位檔案。
通常情況下,一個平台上的二進位可執行檔不能在其他平台上工作。而Java class檔案時可以運行在任何支援Java虛擬機器的硬體平台和作業系統上的二進位檔案。
4.Java API
Java API通過支援平台無關性和安全性,使得Java適應於網路應用。Java API是運行庫的集合,它提供了一套訪問主機系統資源的標準方法。運行Java程式時,虛擬機器裝載程式的class檔案所使用的Java API class檔案。所有被裝載的class檔案(包括從應用程式中和從Java API中提取的)和所有已經裝載的動態庫(包含本地方法)共同組成了在Java虛擬機器上啟動並執行整個程式。
希望通過本文的介紹,能夠給你帶來協助。