那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是Java 有何優(yōu)點

jf_78858299 ? 來源:cnblogs ? 作者:五月的倉頡 ? 2023-02-14 11:14 ? 次閱讀

讓我們來看一下Java的廣告詞,來自http://www.java.com/zh_CN/about/:

  • 97%的企業(yè)桌面運行Java
  • 美國有89%的桌面(或計算機)運行Java
  • 全球有900萬Java開發(fā)人員
  • 開發(fā)人員的頭號選擇
  • 排名第一的部署平臺
  • 有30億部移動電話運行Java
  • 100%的藍光盤播放器附帶了Java
  • 有50億張Java卡在使用
  • 1.25億臺TV設(shè)備運行Java
  • 前5個原始設(shè)備制造商均提供了Java ME

很牛逼不是嗎?OK,這么牛逼的背后,我們Java開發(fā)人員有想過每天和我們朝夕相處的Java到底是什么呢?當然,很多人腦海里第一反應(yīng)一定是,Java不就是一門編程語言嗎,咱們每天寫代碼的語言啊。當然,這么說也是對的,只是Java實際包含的面更廣,一起往下來看下。

什么是Java

經(jīng)過了多年的發(fā)展,Java早已由一門單純的計算機編程語言,演變?yōu)榱艘惶讖姶蟮募夹g(shù)體系。是的,什么是Java,我想技術(shù)體系四個字應(yīng)該是最好的概括了吧。Java設(shè)計者們將Java劃分為3種結(jié)構(gòu)獨立但卻彼此依賴的技術(shù)體系分支,它們分別對應(yīng)著不同的規(guī)范集合和組件:

  1. Java SE(標準版),主要活躍在桌面領(lǐng)域,主要包含了Java API組件。
  2. Java EE(企業(yè)版),活躍在企業(yè)級領(lǐng)域,除了包含Java API組件外,還擴充有Web組件、事務(wù)組件、分布式組件、EJB組件、消息組件等,綜合這些技術(shù),開發(fā)人員完全可以構(gòu)建出一個具備高性能、結(jié)構(gòu)嚴謹?shù)钠髽I(yè)級應(yīng)用,并且Java EE也是用于構(gòu)建SOA(面向服務(wù)架構(gòu))的首選平臺。
  3. Java ME(精簡版),活躍在嵌入式領(lǐng)域,稱之為精簡版的原因是,它僅保留了Java API中的部分組件,以及適應(yīng)設(shè)備的一些特有組件。

上面講到Java技術(shù)體系的分支,那既然Java是一種技術(shù)體系,我們來看一下組成這種技術(shù)體系的技術(shù):

  1. Java編程語言
  2. 字節(jié)碼
  3. Java API,包括Java API類庫和來自商業(yè)機構(gòu)以及開源社區(qū)的第三方類庫
  4. Java虛擬機

很多時候我們只關(guān)注了第一點,因為第一點才是和工作切實相關(guān)的。Java技術(shù)體系所包含的內(nèi)容實際上Java官方有提供給我們一張圖,圖片來源http://docs.oracle.com/javase/7/docs/

Java的優(yōu)點

Java能獲得如此廣泛的認可,除了它擁有一門結(jié)構(gòu)嚴謹、面向?qū)ο蟮木幊陶Z言之外,還有許多不可忽視的優(yōu)點:

1、它擺脫了硬件平臺的束縛,實現(xiàn)了“一次編寫、到處運行”

2、它提供了一個相對安全的內(nèi)存管理和訪問機制,避免了絕大部分的內(nèi)存泄露和指針越界問題

3、它實現(xiàn)了熱點代碼檢測和運行時編譯及優(yōu)化,這使得Java應(yīng)用能隨著運行時間的增加而獲得更高的性能

4、它有一套完整的應(yīng)用程序接口,還有無數(shù)來自商業(yè)機構(gòu)和開源社區(qū)的第三方類庫來幫助它實現(xiàn)各種各樣的功能

5、它與身俱來對分布式技術(shù)的支持就比較完善

但是,Java最大的優(yōu)勢和財富還不是以上這些,就像高翔龍老師在《Java虛擬機精講》中寫的,Java真正強大的地方是因為擁有全世界最多的技術(shù)擁護者和開源社區(qū)支持,他們無時無刻都保持著最充沛的體力與思維,一步一步地驅(qū)動著Java技術(shù)的走向。

JDK和JRE

兩個常見的重要概念。其實上面的圖中已經(jīng)劃分出了JDK和JRE的范圍了。我們對這張圖做一個歸納,用我們的語言簡單地總結(jié)一下什么是JDK和JRE:

1、JDK(Java Development Kit),是用于支持Java程序開發(fā)的最小環(huán)境,基本上Java程序設(shè)計語言、Java虛擬機、Java API類庫這三部分組成了JDK

2、JRE(Java Runtime Enviroment),是支持Java程序運行的標準環(huán)境,Java API類庫中的Java SE API自己和Java虛擬機這兩部分組成了JRE

OpenJDK

前面有講過,“Java真正強大的地方是因為擁有全世界最多的技術(shù)擁護者和開源社區(qū)支持,他們無時無刻都保持著最充沛的體力與思維,一步一步地驅(qū)動著Java技術(shù)的走向”。其實JDK在一開始并不是開源的,但是隨著開源運動的蓬勃發(fā)展,2006年Sun公司宣布將對Java開放源代碼,開源的Java平臺開發(fā)主要集中在OpenJDK項目上。2009年4月15日,Sun公司正式發(fā)布OpenJDK,JDK 7則是Java開源后發(fā)布的第一個版本,任何組織和個人都可以為Java的發(fā)展做出貢獻。當然OpenJDK和真正的Oracle JDK(因為Sun公司被Oracle公司在2010年收購了嘛,所以就叫做Oracle JDK了)還是有區(qū)別的:

OpenJDK中的代碼基本上都來自于Oracle JDK,屬于Oracle JDK的一個分支,但是其中去除了一些非開源的組件和代碼,替換成了開源的組件和代碼,主要是加密和圖形的部分。因此用OpenJDK代替Oracle JDK可能會有一些的不兼容。

對于OpenJDK感興趣的,可以在OpenJDK官網(wǎng)http://download.java.net/openjdk/jdk7/下載OpenJDK的源代碼。像Java虛擬機HotSpot、Java編譯器Javac、JNI等等,源代碼都在里面。

JCP和JSR

JCP(Java Community Process)是一套制定Java技術(shù)規(guī)范的機制,通過制定和審查JSR(Java Specification Requests)推動Java技術(shù)規(guī)范的發(fā)展。一個已經(jīng)提交的JSR要想成為最終狀態(tài),需要經(jīng)過正式的公開審查,并由JCP委員會投票決定,最終的JSR會提供一個參考實現(xiàn),它是免費而且公開源代碼的。JSR并非只由Oracle管理,任何個人都可以注冊并參與審查JSR,對于Java語言發(fā)展動態(tài)感興趣的人來說,跟蹤JSR的動態(tài)發(fā)展是一條不錯的學(xué)習(xí)途徑。在JCP官網(wǎng)http://www.jcp.org/中可以查看所有的JSR,下面列舉幾個大家熟悉的JSR:

  1. JSR 14,泛型
  2. JSR 51,NIO
  3. JSR 175,注解
  4. JSR 201,枚舉以及自動裝箱等
  5. JSR 221,JDBC4.0 API

Java虛擬機

最后,輪到這個大哥登場,也是之后文章的主角。為什么Java可以實現(xiàn)所謂的“一次編寫,到處運行”,主要是因為虛擬機的存在。Java虛擬機負責Java程序設(shè)計語言的安全特性和平臺無關(guān)性。Java虛擬機屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使得Java語言編譯器只需要生成在Java虛擬機上運行的字節(jié)碼,就可以在多種平臺上不加修改地運行。Java虛擬機使得Java擺脫了具體機器的束縛,使跨越不同平臺編寫程序成為了可能。

要多提一句,我們現(xiàn)在說的Java虛擬機基本上都是JDK自帶的虛擬機HotSpot,這款虛擬機也是目前商用虛擬中市場份額最大的一款虛擬機,可以通過在命令行程序中輸入“java -version”來查看。

那其實市面上還有很多別的優(yōu)秀的虛擬機。Sun公司除了有大名鼎鼎的HotSpot外,還有KVM、Squawk VM、Maxine VM,BEA公司有JRockit VM、IBM公司有J9 VM等等。

后記

越學(xué)習(xí)Java虛擬機,越覺得它有意思,工作中越能解決一些復(fù)雜的、奇怪的、別人解決不了的問題(為什么你比別人厲害、為什么你比別人拿更高的工資?說白了不就是你能解決別人解決不了的問題、做到別人做不到的事嗎?)。又或者,當一個Java項目龐大到一定程度之后,就會根據(jù)自己的業(yè)務(wù)需求,定制自己的虛擬機,比如淘寶網(wǎng)就基于OpenJDK深度定制了Taobao VM,能做到這一點的基礎(chǔ)就是對Java虛擬機有深入的理解。作為一個Java開發(fā),如果目標只是把寫代碼這件事情做好,那么OK,完全不需要去學(xué)習(xí)、研究Java語言之外的任何東西,每到一個公司,只要簡單理解公司項目的整體架構(gòu)以及理清業(yè)務(wù)就好了。但是如果目標是成為一名Java技術(shù)專家、CTO,相信代碼可以改變世界(至少我本人是朝著這個方向努力的),那么學(xué)習(xí)、研究虛擬機絕對是不可缺少的一課。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 計算機
    +關(guān)注

    關(guān)注

    19

    文章

    7540

    瀏覽量

    88650
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2975

    瀏覽量

    105161
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1950

    瀏覽量

    34989
收藏 人收藏

    評論

    相關(guān)推薦

    地圖匹配算法是什么?改進的地圖匹配方法優(yōu)點

    地圖匹配的原理是什么?地圖匹配算法是什么?改進的地圖匹配方法優(yōu)點?
    發(fā)表于 05-13 06:09

    BLDC電機梯形波控制(6步控制)的實際相序優(yōu)點

    三相BLDC無刷直流電機是怎樣驅(qū)動的?六步控制與正弦波控制何不同?BLDC電機梯形波控制(6步控制)的實際相序優(yōu)點?
    發(fā)表于 08-10 06:59

    AS3415/AS3435是什么?優(yōu)點以及應(yīng)用

    耳機的降噪方法分為哪幾種?AS3421/AS3422是什么?AS3421/AS342優(yōu)點以及應(yīng)用?AS3415/AS3435是什么?AS3415/AS3435
    發(fā)表于 08-10 06:53

    什么是電流探頭?電流探頭優(yōu)點

    什么是電流探頭?電流探頭優(yōu)點?電流探頭校準裝置是由哪幾個部分組成的?
    發(fā)表于 09-18 08:44

    單相電風(fēng)扇采用電子式調(diào)速器優(yōu)點

    二極管的主要參數(shù)哪些?單相電風(fēng)扇采用電子式調(diào)速器優(yōu)點?
    發(fā)表于 09-27 08:39

    采樣電阻加運放的電流采樣優(yōu)點

    電流采樣的原理是什么?采樣電阻加運放的電流采樣優(yōu)點?
    發(fā)表于 09-30 07:33

    伺服電機和步進電機的過載特性區(qū)別

    倍速鏈輸送具有哪些優(yōu)點?伺服電機和步進電機的控制方式區(qū)別?伺服電機和步進電機的過載特性區(qū)別?
    發(fā)表于 10-11 06:31

    使用直線電機比滾珠絲桿的線性電機優(yōu)點?

    如何正確選擇伺服電機和步進電機?選擇步進電機還是伺服電機系統(tǒng)?通過通訊方式直接控制伺服電機可以實現(xiàn)嗎?如何為應(yīng)用選擇適當?shù)墓╇婋娫??使用直線電機比滾珠絲桿的線性電機優(yōu)點?
    發(fā)表于 11-01 07:04

    Stduino IDE優(yōu)點?怎樣去使用Stduino IDE呢

    Stduino IDE是什么?Stduino IDE優(yōu)點?怎樣去使用Stduino IDE呢?
    發(fā)表于 12-07 06:01

    基于Arduino IDE軟件的STM32串口通信優(yōu)點

    與使用Keil 5實現(xiàn)串口通信相比,基于Arduino IDE軟件的STM32串口通信優(yōu)點?
    發(fā)表于 12-08 07:47

    java入門經(jīng)典書籍推薦

    本文首先介紹了關(guān)于java語言的優(yōu)點,其次介紹了java入門學(xué)習(xí)的基礎(chǔ),最后推薦了學(xué)習(xí)java的書籍。
    的頭像 發(fā)表于 04-13 09:13 ?1.9w次閱讀

    2015款MacBookPro拆解 與上代相比產(chǎn)品優(yōu)點

    2015款13寸MacBook Pro最引人矚目的,自然是全新無按鍵的ForceTouch觸控板了,該功能可以感應(yīng)到用戶的輕點和長按,從而啟用不同的觸控命令,那么其中的原理是什么?與上代先比產(chǎn)品又有優(yōu)點?帶著問題走進此次的拆解
    的頭像 發(fā)表于 10-11 16:39 ?6.3w次閱讀

    用于嵌入式系統(tǒng)的Java優(yōu)點和缺點

      在嵌入式系統(tǒng)上使用 Java優(yōu)點多于缺點,特別是因為代碼的質(zhì)量和大量已經(jīng)能夠使用 Java 編程的人。在嵌入式系統(tǒng)領(lǐng)域擁有 Java 社區(qū)尤其重要,因為它是編程世界中的第三大社
    的頭像 發(fā)表于 07-01 10:00 ?1649次閱讀

    Java語言什么特點/優(yōu)點?

    Java語言是面向?qū)ο蟮?,一切皆對象,不用去擔心具體的功能實現(xiàn),只需要關(guān)注功能點本身能實現(xiàn)什么功能即可,更符合人們的思考習(xí)慣,將復(fù)雜的問題簡單化,能夠直接反應(yīng)現(xiàn)實生活中的對象,例如動物、人類等對象。
    的頭像 發(fā)表于 02-28 14:46 ?1127次閱讀

    線性電源、相控電源、開關(guān)電源什么不同?開關(guān)電源優(yōu)點

    線性電源、相控電源、開關(guān)電源什么不同?開關(guān)電源優(yōu)點? 電源是電子設(shè)備的基礎(chǔ),其作用是將電網(wǎng)電壓轉(zhuǎn)換成適合設(shè)備使用的低壓電源。在市場上,
    的頭像 發(fā)表于 09-26 16:50 ?1978次閱讀
    网上百家乐指| 博盈百家乐官网游戏| 百家乐官网手机壳| 二八杠开户| 大发888网页版登录| 百家乐官网庄多还是闲多| 威尼斯人娱乐棋牌下载| 百家乐官网连长| 百家乐规则| 百家乐官网赌博论坛在线| 免费百家乐缩水软件| 太阳城百家乐官网下载网址| 小孟百家乐的玩法技巧和规则| 百家乐官网代理商博彩e族| tt百家乐的玩法技巧和规则| 八大胜官网| 澳门百家乐开户投注| 承德县| 百家乐做庄家必赢诀窍| 百家乐官网赌经| 百家乐赌博筹| 百家乐官网永利娱乐| 棋牌游戏论坛| 百家乐澳门百家乐| 百家乐官网最长的缆| 百家乐麻将筹码币镭射贴膜| 百家乐官网对冲套红利| 大发888游戏平台103| 做生意怎样看风水| 长丰县| 御匾会百家乐的玩法技巧和规则| 百家乐官网自动下注| 冠通网络棋牌世界| 百家乐微笑投注| 临汾玩百家乐官网的人在那里找| 威尼斯人娱乐网开户| 大发百家乐官网的玩法技巧和规则| 皇冠网络刷qb软件| 送现金百家乐的玩法技巧和规则| 娱百家乐官网下载| 南涧|