Java基礎(chǔ)-Java的體系結(jié)構(gòu)
1 前言
到目前為止Java仍然是使用最多的編程語(yǔ)言,隨著Java以及Java社區(qū)的不斷壯大,Java也早已不再是簡(jiǎn)簡(jiǎn)單單的一門計(jì)算機(jī)語(yǔ)言了,它更是一個(gè)平臺(tái)、一種文化、一個(gè)社區(qū)。
1. 1 Java技術(shù)平臺(tái)
根據(jù)不同的技術(shù)規(guī)范,Java劃分為3中結(jié)構(gòu)獨(dú)立但又相互依賴的技術(shù)分支:Java SE(標(biāo)準(zhǔn)版)、Java EE(企業(yè)版)、Java ME(精簡(jiǎn)版)。此外, Java的發(fā)展,除了來(lái)自互聯(lián)網(wǎng)的崛起,還有Google選擇Java作為Android操作系統(tǒng),Groovy、Scala、JRuby、Kotlin等都是Java平臺(tái)的一部分。
Java SE
活躍在桌面領(lǐng)域,主要包含Java API組件。這個(gè)版本是Java平臺(tái)的核心。
Java EE
活躍在企業(yè)級(jí)領(lǐng)域,主要包含Java API組件、Web組件、事務(wù)組件、分布式組件、EJB組件、消息組件;綜合這些技術(shù)開(kāi)發(fā)人員完全可以構(gòu)建出一個(gè)具備高性能、結(jié)構(gòu)嚴(yán)謹(jǐn)?shù)钠髽I(yè)級(jí)應(yīng)用,并且Java EE也是構(gòu)建SOA架構(gòu)的首選平臺(tái)。Java EE是Java SE的擴(kuò)展。
Java ME
活躍在嵌入式領(lǐng)域,稱為精簡(jiǎn)版是因?yàn)?code>JavaME僅保留了Java API中的部分組件,以及適應(yīng)設(shè)備的一些特有組件。Java ME是Java SE的內(nèi)伸。
1.2 Java開(kāi)源文化
Java幾乎成為了“開(kāi)源”的代名詞。第三方開(kāi)源軟件和框架。如Tomcat、Struts,MyBatis,Spring等。就連JDK和JVM自身也有不少開(kāi)源的實(shí)現(xiàn),如openJDK、Harmony。
1.3 Java強(qiáng)大社區(qū)
Java的文化造就了Java社區(qū),Java擁有全世界最多的技術(shù)擁護(hù)者和開(kāi)源社區(qū)支持,有數(shù)不清的論壇和資料。所謂,眾人拾柴火焰高!
2 Java體系結(jié)構(gòu)的組成
Java技術(shù)的核心就是Java虛擬機(jī)——所有Java程序都在其上運(yùn)行,需要Java虛擬機(jī)、Java API和Java,class文件的配合,Java程序才能夠運(yùn)行。
2.1 Java編程語(yǔ)言
首先我們理一下一個(gè)Java程序從編寫(xiě)到最終執(zhí)行的過(guò)程:
- (1)一個(gè)A.java程序源文件執(zhí)行javac命令后編程成A.class二進(jìn)制的字節(jié)碼文件
- (2).class文件會(huì)被ClassLoader裝載到內(nèi)存中,同時(shí)裝載java相關(guān)核心類庫(kù)
- (3)調(diào)用字節(jié)碼解釋器或即時(shí)編譯器(java是解釋器和編譯器混合執(zhí)行)
- (4)執(zhí)行引擎調(diào)用操作系統(tǒng)或硬件運(yùn)行
2.2 字節(jié)碼
任何編程語(yǔ)言的編譯結(jié)果滿足并包含Java
虛擬機(jī)的內(nèi)部指令集、符號(hào)表以及一些其他輔助信息的話,這個(gè)編譯結(jié)果就是一個(gè)有效的字節(jié)碼文件。
字節(jié)碼的重大作用:為Java跨平臺(tái)提供了支持。正是因?yàn)樵创a編譯后為字節(jié)碼文件,而字節(jié)碼文件相較機(jī)器指令,字節(jié)碼可以解決程序的安全性問(wèn)題、跨平臺(tái)移植性問(wèn)題。而且源碼只需一次編譯,得到的字節(jié)碼文件可以在不同的平臺(tái)上運(yùn)行。
2.3 Java API
API
(Application Programming Interface)應(yīng)用程序編程接口,是一些預(yù)先定義的類。目的是使開(kāi)發(fā)人員可以直接使用這些已經(jīng)被打包的類來(lái)做具體的應(yīng)用,節(jié)約了程序員大量的時(shí)間和精力。
2.4 Java虛擬機(jī)
Java虛擬機(jī)(Java Virtual Machine簡(jiǎn)稱JVM)是運(yùn)行所有Java程序的抽象計(jì)算機(jī),是Java語(yǔ)言的運(yùn)行環(huán)境,其主要任務(wù)為將字節(jié)碼裝載到內(nèi)部,解釋/編譯為對(duì)應(yīng)平臺(tái)上的機(jī)器指令執(zhí)行。
Java虛擬機(jī)規(guī)范定義了一個(gè)抽象的——而非實(shí)際的——機(jī)器或處理器。這個(gè)規(guī)范描述了一個(gè)指令集,一組寄存器,一個(gè)堆棧,一個(gè)“垃圾堆”,和一個(gè)方法區(qū)。一旦一個(gè)Java虛擬機(jī)在給定的平臺(tái)上運(yùn)行,任何Java程序(編譯之后的程序,稱作字節(jié)碼)都能在這個(gè)平臺(tái)上運(yùn)行。Java虛擬機(jī)(JVM)可以以一次一條指令的方式來(lái)解釋字節(jié)碼(把它映射到實(shí)際的處理器指令),或者字節(jié)碼也可以由實(shí)際處理器中稱作just-in-time
的編譯器進(jìn)行進(jìn)一步的編譯。
3 總結(jié)
筆者是一名Java編程語(yǔ)言的深度使用者,到目前為止,Java仍是世界上的頭號(hào)編程語(yǔ)言。然而,Java最終將會(huì)減弱,就像C++一樣,淪為只在特殊情況下使用(或者只是用來(lái)支持傳統(tǒng)的代碼,因?yàn)樗荒芟馛++那樣和硬件連接)。但是無(wú)意中的好處,也是Java真正意外的光彩之處在于它為自己的替代品創(chuàng)造了一條非常暢通的道路,即使Java本身已經(jīng)達(dá)到了無(wú)法再發(fā)展的程度。未來(lái)所有的語(yǔ)言都應(yīng)該從中學(xué)習(xí):要么創(chuàng)建一個(gè)可以重構(gòu)的文化(像Python和Ruby做的那樣),要么就讓競(jìng)爭(zhēng)者茁壯成長(zhǎng)。
到此這篇關(guān)于Java基礎(chǔ)-Java的體系結(jié)構(gòu)的文章就介紹到這了,更多相關(guān)Java的體系結(jié)構(gòu)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java布局管理之CardLayout簡(jiǎn)單實(shí)例
這篇文章主要為大家詳細(xì)介紹了java布局管理之CardLayout的簡(jiǎn)單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03java使用DOM對(duì)XML文檔進(jìn)行增刪改查操作實(shí)例代碼
這篇文章主要介紹了java使用DOM對(duì)XML文檔進(jìn)行增刪改查操作實(shí)例代碼,實(shí)例涉及對(duì)xml文檔的增刪改查,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02java實(shí)現(xiàn)PPT轉(zhuǎn)PDF出現(xiàn)中文亂碼問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)PPT轉(zhuǎn)PDF出現(xiàn)中文亂碼問(wèn)題的解決方法,進(jìn)行了詳細(xì)的問(wèn)題分析,需要的朋友可以參考下2015-11-11Java之Springcloud Gateway內(nèi)置路由案例講解
這篇文章主要介紹了Java之Springcloud Gateway內(nèi)置路由案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08遞歸出現(xiàn)棧溢出stackoverflow的問(wèn)題及解決
這篇文章主要介紹了關(guān)于遞歸出現(xiàn)棧溢出stackoverflow的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09java實(shí)現(xiàn)json字符串格式化處理的工具類
這篇文章主要為大家詳細(xì)介紹了如何使用java實(shí)現(xiàn)json字符串格式化處理的工具類,文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01解讀Spring事務(wù)是如何實(shí)現(xiàn)的
這篇文章主要介紹了Spring事務(wù)是如何實(shí)現(xiàn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03