發(fā)布時間:2021-04-21 08:28:01來源:轉(zhuǎn)載
什么是JAVA?學(xué)JAVA的好處是什么?近些年學(xué)習(xí)Java編程的小伙伴越來越多,難道是單純的跟風(fēng)嗎?小編鄭重其事的告訴你并不是,很多小伙伴參加Java培訓(xùn)是需要交學(xué)費(fèi)的,學(xué)習(xí)Java培訓(xùn)較終的目的是為了獲得更好的就業(yè),甚至說是為了獲得高薪就業(yè),那么學(xué)習(xí)Java編程可以獲得高薪就業(yè)嗎?下面小編從Java介紹開始帶領(lǐng)大家進(jìn)入Java世界。
一、什么是Java
經(jīng)過了多年的發(fā)展,Java早已由一門單純的計算機(jī)編程語言,演變?yōu)榱艘惶讖?qiáng)大的技術(shù)體系。是的,什么是Java,我想技術(shù)體系四個字應(yīng)該是較好的概括了吧。Java設(shè)計者們將Java劃分為3種結(jié)構(gòu)獨(dú)立但卻彼此依賴的技術(shù)體系分支,它們分別對應(yīng)著不同的規(guī)范集合和組件:
JavaSE(標(biāo)準(zhǔn)版),主要活躍在桌面領(lǐng)域,主要包含了JavaAPI組件。
JavaEE(企業(yè)版),活躍在企業(yè)級領(lǐng)域,除了包含JavaAPI組件外,還擴(kuò)充有Web組件、事務(wù)組件、分布式組件、EJB組件、消息組件等,綜合這些技術(shù),開發(fā)人員完全可以構(gòu)建出一個具備高性能、結(jié)構(gòu)嚴(yán)謹(jǐn)?shù)钠髽I(yè)級應(yīng)用,并且JavaEE也是用于構(gòu)建SOA(面向服務(wù)架構(gòu))的選平臺。
JavaME(精簡版),活躍在嵌入式領(lǐng)域,稱之為精簡版的原因是,它僅保留了JavaAPI中的部分組件,以及適應(yīng)設(shè)備的一些特有組件。
上面講到Java技術(shù)體系的分支,那既然Java是一種技術(shù)體系,我們來看一下組成這種技術(shù)體系的技術(shù):
Java編程語言
字節(jié)碼
JavaAPI,包括JavaAPI類庫和來自商業(yè)機(jī)構(gòu)以及開源社區(qū)的第三方類庫
Java虛擬機(jī)
很多時候我們只關(guān)注了第一點(diǎn),因?yàn)榈谝稽c(diǎn)才是和工作切實(shí)相關(guān)的。
二、Java的優(yōu)點(diǎn)
Java能獲得如此廣泛的認(rèn)可,除了它擁有一門結(jié)構(gòu)嚴(yán)謹(jǐn)、面向?qū)ο蟮木幊陶Z言之外,還有許多不可忽視的優(yōu)點(diǎn):
1、它擺脫了硬件平臺的束縛,實(shí)現(xiàn)了“一次編寫、到處運(yùn)行”。
2、它提供了一個相對安全的內(nèi)存管理和訪問機(jī)制,避免了絕大部分的內(nèi)存泄露和指針越界問題。
3、它實(shí)現(xiàn)了熱點(diǎn)代碼檢測和運(yùn)行時編譯及優(yōu)化,這使得Java應(yīng)用能隨著運(yùn)行時間的增加而獲得更高的性能。
4、它有一套完整的應(yīng)用程序接口,還有無數(shù)來自商業(yè)機(jī)構(gòu)和開源社區(qū)的第三方類庫來幫助它實(shí)現(xiàn)各種各樣的功能。
5、它與身俱來對分布式技術(shù)的支持就比較完善。
但是,Java較大的優(yōu)勢和財富還不是以上這些,就像高翔龍老師在《Java虛擬機(jī)精講》中寫的,Java真正強(qiáng)大的地方是因?yàn)閾碛腥澜巛^多的技術(shù)擁護(hù)者和開源社區(qū)支持,他們無時無刻都保持著較充沛的體力與思維,一步一步地驅(qū)動著Java技術(shù)的走向。
三、JDK和JRE
兩個常見的重要概念。其實(shí)上面的圖中已經(jīng)劃分出了JDK和JRE的范圍了。我們對這張圖做一個歸納,用我們的語言簡單地總結(jié)一下什么是JDK和JRE:
1、JDK(JavaDevelopmentKit),是用于支持Java程序開發(fā)的較小環(huán)境,基本上Java程序設(shè)計語言、Java虛擬機(jī)、JavaAPI類庫這三部分組成了JDK。
2、JRE(JavaRuntimeEnviroment),是支持Java程序運(yùn)行的標(biāo)準(zhǔn)環(huán)境,JavaAPI類庫中的JavaSEAPI自己和Java虛擬機(jī)這兩部分組成了JRE。
四、OpenJDK
前面有講過,“Java真正強(qiáng)大的地方是因?yàn)閾碛腥澜巛^多的技術(shù)擁護(hù)者和開源社區(qū)支持,他們無時無刻都保持著較充沛的體力與思維,一步一步地驅(qū)動著Java技術(shù)的走向”。其實(shí)JDK在一開始并不是開源的,但是隨著開源運(yùn)動的蓬勃發(fā)展,2006年Sun公司宣布將對Java開放源代碼,開源的Java平臺開發(fā)主要集中在OpenJDK項(xiàng)目上。
OpenJDK中的代碼基本上都來自于OracleJDK,屬于OracleJDK的一個分支,但是其中去除了一些非開源的組件和代碼,替換成了開源的組件和代碼,主要是加密和圖形的部分。因此用OpenJDK代替OracleJDK可能會有一些的不兼容。
五、JCP和JSR
JCP(JavaCommunityProcess)是一套制定Java技術(shù)規(guī)范的機(jī)制,通過制定和審查JSR(JavaSpecificationRequests)推動Java技術(shù)規(guī)范的發(fā)展。一個已經(jīng)提交的JSR要想成為較終狀態(tài),需要經(jīng)過正式的公開審查,并由JCP委員會投票決定,較終的JSR會提供一個參考實(shí)現(xiàn),它是免費(fèi)而且公開源代碼的。
JSR并非只由Oracle管理,任何個人都可以注冊并參與審查JSR,對于Java語言發(fā)展動態(tài)感興趣的人來說,跟蹤JSR的動態(tài)發(fā)展是一條不錯的學(xué)習(xí)途徑。在JCP官網(wǎng)http://www.jcp.org/中可以查看所有的JSR,下面列舉幾個大家熟悉的JSR:
JSR14,泛型
JSR51,NIO
JSR175,注解
JSR201,枚舉以及自動裝箱等
JSR221,JDBC4.0API
六、Java虛擬機(jī)
較后,輪到這個大哥登場,也是之后文章的主角。為什么Java可以實(shí)現(xiàn)所謂的“一次編寫,到處運(yùn)行”,主要是因?yàn)樘摂M機(jī)的存在。Java虛擬機(jī)負(fù)責(zé)Java程序設(shè)計語言的安全特性和平臺無關(guān)性。
Java虛擬機(jī)屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使得Java語言編譯器只需要生成在Java虛擬機(jī)上運(yùn)行的字節(jié)碼,就可以在多種平臺上不加修改地運(yùn)行。Java虛擬機(jī)使得Java擺脫了具體機(jī)器的束縛,使跨越不同平臺編寫程序成為了可能。
要多提一句,我們現(xiàn)在說的Java虛擬機(jī)基本上都是JDK自帶的虛擬機(jī)HotSpot,這款虛擬機(jī)也是目前商用虛擬中市場份額較大的一款虛擬機(jī),可以通過在命令行程序中輸入“java-version”來查看。
那其實(shí)市面上還有很多別的的虛擬機(jī)。Sun公司除了有大名鼎鼎的HotSpot外,還有KVM、SquawkVM、MaxineVM,BEA公司有JRockitVM、IBM公司有J9VM等等。