深入Java虛擬機器(理解Java)

來源:互聯網
上載者:User

標籤:

引子:我常說,要瞭解一個人,就去他生長的地方。其實,要瞭解一門語言,也應該去瞭解他的初衷。《深入Java虛擬機器》的前半部分就是這樣深入了Java。

1990年除,智能加電快速發展,Sun公司開發了Java的前身——Oak。Oak是一種可以撰寫跨平台應用軟體的物件導向的程式設計語言。由於這些智能化家電的市場需求沒有預期的高,就在Oak幾近失敗之時,隨著互連網的發展,Sun看到了Oak在電腦網路上的廣闊應用前景,於是改造了Oak,在1995年5月以“Java”的名稱正式發布了。可見,Java生來就是要解決跨平台問題、網路問題,它的平台無關性、安全性和網路移動性與發展中的網路相得益彰。

Java的體繫結構包括四個獨立的方面:

  • Java程式設計語言
  • Java class檔案格式
  • Java應用編程介面(Java API)
  • Java虛擬機器

其中Java虛擬機器和Java API一起組成了一個平台,也被稱為運行時系統,支援了Java體繫結構的三大特性:平台無關、安全、網路移動。 Java虛擬機器的主要任務是裝載class檔案並且執行位元組碼,由一個Java虛擬機器規範所定義,可以靈活的在各種不同的裝置不同的平台上進行實現。而Java API提供了一套通用的訪問主機系統資源的標準方法,編寫Java程式時,可以假定在任何可執行程式的Java虛擬機器上都能擷取Java API class檔案。這些class檔案檢測了底層的硬體差異,推動了平台無關性。

Java程式設計語言本身,充分利用了許多的軟體技術:

  • 物件導向
  • 多線程
  • 結構化錯誤處理
  • 垃圾收集
  • 動態連結
  • 動態擴充

Java與C/C++有很大的區別,是一個完全的物件導向的語言。沒有指標的概念,不直接與記憶體、地址打交道,需要嚴格遵守類型規則。在Java棧中,只存在引用和基本變數,對象統一在堆中進行管理。另外,無需釋放對象,數組也是一個完整的對象,使用對象引用時不可為空等都增強了程式的健壯性和設計效率。

關於平台無關性支援的幾個方面:

  • Java平台:緩衝了Java程式和硬體、作業系統
  • Java語言:範圍和行為定義統一,與平台無關
  • Java class檔案:嚴格定義,可在任何平台建立和裝載
  • 延展性:不同的API集

值得一提的是Java的延展性:Java根據情境和需求的不同,定義了三個API子集,J2EE,J2SE,J2ME,在高端,企業版表明了高端服務的可用性,在中端,標準版提供了在瀏覽器中和案頭環境下的Java環境,在低端,微型版通過不同的行業子集顯示了可以向下伸縮來完全適應不同的消費性電器市場和嵌入式系統。

Java的網路移動性支援:

  • 平台無關性和安全性
  • class小檔案的方便傳輸和按序裝載
  • 動態串連和動態擴充
  • class檔案的緊湊設計
  • JAR支援

總結來說,Java為移動網路而生,為跨平台而生,在複雜的軟硬體環境上構建了一個同構的環境,是一種不同的軟體開發、軟體分發、啟動並執行模式。在Java applet、Hadoop大資料平台中不斷證明了自己的價值。

深入Java虛擬機器(理解Java)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.