Java基礎-Java的體系結構

1 前言

到目前為止Java仍然是使用最多的編程語言,隨著Java以及Java社區的不斷壯大,Java也早已不再是簡簡單單的一門計算機語言瞭,它更是一個平臺、一種文化、一個社區。

1. 1 Java技術平臺

根據不同的技術規范,Java劃分為3中結構獨立但又相互依賴的技術分支:Java SE(標準版)、Java EE(企業版)、Java ME(精簡版)。此外, Java的發展,除瞭來自互聯網的崛起,還有Google選擇Java作為Android操作系統,Groovy、Scala、JRuby、Kotlin等都是Java平臺的一部分。

Java SE

活躍在桌面領域,主要包含Java API組件。這個版本是Java平臺的核心。

Java EE

活躍在企業級領域,主要包含Java API組件、Web組件、事務組件、分佈式組件、EJB組件、消息組件;綜合這些技術開發人員完全可以構建出一個具備高性能、結構嚴謹的企業級應用,並且Java EE也是構建SOA架構的首選平臺。Java EE是Java SE的擴展。

Java ME

活躍在嵌入式領域,稱為精簡版是因為JavaME僅保留瞭Java API中的部分組件,以及適應設備的一些特有組件。Java ME是Java SE的內伸。

在這裡插入圖片描述

1.2 Java開源文化

Java幾乎成為瞭“開源”的代名詞。第三方開源軟件和框架。如Tomcat、Struts,MyBatis,Spring等。就連JDK和JVM自身也有不少開源的實現,如openJDK、Harmony。

1.3 Java強大社區

Java的文化造就瞭Java社區,Java擁有全世界最多的技術擁護者和開源社區支持,有數不清的論壇和資料。所謂,眾人拾柴火焰高!

2 Java體系結構的組成

Java技術的核心就是Java虛擬機——所有Java程序都在其上運行,需要Java虛擬機、Java API和Java,class文件的配合,Java程序才能夠運行。

2.1 Java編程語言

首先我們理一下一個Java程序從編寫到最終執行的過程:

  • (1)一個A.java程序源文件執行javac命令後編程成A.class二進制的字節碼文件
  • (2).class文件會被ClassLoader裝載到內存中,同時裝載java相關核心類庫
  • (3)調用字節碼解釋器或即時編譯器(java是解釋器和編譯器混合執行)
  • (4)執行引擎調用操作系統或硬件運行

在這裡插入圖片描述

2.2 字節碼

任何編程語言的編譯結果滿足並包含Java虛擬機的內部指令集、符號表以及一些其他輔助信息的話,這個編譯結果就是一個有效的字節碼文件。

字節碼的重大作用:為Java跨平臺提供瞭支持。正是因為源代碼編譯後為字節碼文件,而字節碼文件相較機器指令,字節碼可以解決程序的安全性問題、跨平臺移植性問題。而且源碼隻需一次編譯,得到的字節碼文件可以在不同的平臺上運行。

在這裡插入圖片描述

2.3 Java API

API(Application Programming Interface)應用程序編程接口,是一些預先定義的類。目的是使開發人員可以直接使用這些已經被打包的類來做具體的應用,節約瞭程序員大量的時間和精力。

2.4 Java虛擬機

Java虛擬機(Java Virtual Machine簡稱JVM)是運行所有Java程序的抽象計算機,是Java語言的運行環境,其主要任務為將字節碼裝載到內部,解釋/編譯為對應平臺上的機器指令執行。

在這裡插入圖片描述

Java虛擬機規范定義瞭一個抽象的——而非實際的——機器或處理器。這個規范描述瞭一個指令集,一組寄存器,一個堆棧,一個“垃圾堆”,和一個方法區。一旦一個Java虛擬機在給定的平臺上運行,任何Java程序(編譯之後的程序,稱作字節碼)都能在這個平臺上運行。Java虛擬機(JVM)可以以一次一條指令的方式來解釋字節碼(把它映射到實際的處理器指令),或者字節碼也可以由實際處理器中稱作just-in-time的編譯器進行進一步的編譯。

在這裡插入圖片描述

3 總結

筆者是一名Java編程語言的深度使用者,到目前為止,Java仍是世界上的頭號編程語言。然而,Java最終將會減弱,就像C++一樣,淪為隻在特殊情況下使用(或者隻是用來支持傳統的代碼,因為它不能像C++那樣和硬件連接)。但是無意中的好處,也是Java真正意外的光彩之處在於它為自己的替代品創造瞭一條非常暢通的道路,即使Java本身已經達到瞭無法再發展的程度。未來所有的語言都應該從中學習:要麼創建一個可以重構的文化(像Python和Ruby做的那樣),要麼就讓競爭者茁壯成長。

到此這篇關於Java基礎-Java的體系結構的文章就介紹到這瞭,更多相關Java的體系結構內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: