四虎影视库国产精品一区-四虎影视库-四虎影视久久久免费-四虎影视久久久-四虎影视久久-四虎影视精品永久免费网站

TEL:15195455103

Java培訓(xùn) > Java知識 >

Java從小白到大牛

作者:南京????來源:南京????發(fā)布時間:2020-01-09 08:43????瀏覽量:174

  Java誕生到現(xiàn)在已經(jīng)有20多年了,但是Java仍然是非常熱門的編程語言之一,很多平臺中使用Java開發(fā)。Java語言的熱度,或許這也是很多人選擇學(xué)習(xí)Java的主要原因。

  Java語言歷史

  在正式學(xué)習(xí)Java語言之前,有必要先來了解一下Java的歷史。1990年底美國Sun公司[1]成立了一個叫做Green的項目組,該Green項目主要目標(biāo)是為消費類電子產(chǎn)品開發(fā)一種分布式系統(tǒng),使之能夠操控電冰箱、電視機等家用電器。

  消費類電子產(chǎn)品種類很多,包括掌上電腦(個人數(shù)字助理,Personal Digital Assistant,簡稱PDA)、機頂盒、手機等等,這些消費類電子產(chǎn)品所采用的處理芯片和操作系統(tǒng)基本上都是不相同的,存在跨平臺等問題。開始Green項目組考慮采用C++語言來編寫消費類電子產(chǎn)品的應(yīng)用程序,但是C++語言過于復(fù)雜、龐大,而且安全性差。于是他們設(shè)計并開發(fā)出一種新的語言——Oak(橡樹)。Oak這個名字來源于Green項目組辦公室窗外的一棵橡樹。由于Oak在進行注冊商標(biāo)時已經(jīng)被注冊,他們需要為這個新語言取一個新的名字,有一天,幾位項目的成員正在咖啡館喝著Java(爪哇)咖啡,其中一個人靈機一動說就叫Java怎么樣?馬上得到了其他人的同意,于是這個新的語言取名為Java。

  Sun在1996年發(fā)布了Java 1.0,但是Java 1.0開發(fā)的應(yīng)用速度很慢,并不適合做真正的應(yīng)用開發(fā),直到Java 1.1后速度有了明顯的提升。Java設(shè)計之初是為消費類電子產(chǎn)品開發(fā)應(yīng)用,但是真正使Java流行起來是在互聯(lián)網(wǎng)上的Web應(yīng)用程序,上個世紀(jì)90年代正在互聯(lián)網(wǎng)發(fā)展起步階段,互聯(lián)網(wǎng)上設(shè)備差別很大,需要應(yīng)用程序能夠跨平臺運行,那么Java語言具有“一經(jīng)編寫到處運行”的跨平臺能力。

  到本書編寫時,Oracle公司已經(jīng)發(fā)布了Java 8,Java 9將在2017年秋季發(fā)布。Java

  在20多年發(fā)展過程中,與時俱進,為了適應(yīng)時代的需要,經(jīng)歷過兩次重大的版本升級,一個是Java 5,Java 5提供了泛型等重要的功能;另一個是Java 8,Java 8中提供了Lambda表達式和枚舉類等重要的功能。

  Java語言特點

  Java語言能夠流行起來,并長久不衰,得益于Java語言有很多優(yōu)秀的關(guān)鍵特點。這些特點包括:簡單、面向?qū)ο蟆⒎植际健⒔Y(jié)構(gòu)中立、可移植、解釋執(zhí)行、健壯、安全、高性能、多線程和動態(tài)。下面詳細(xì)解釋一下:

  1. 簡單

  Java設(shè)計目標(biāo)之一就是能夠方便學(xué)習(xí),使用簡單。由于當(dāng)初C++程序員很多,介紹C++語言的書籍也很多,所以Java語言的風(fēng)格設(shè)計成為類似于C++語言風(fēng)格,但Java摒棄了C++中容易引發(fā)程序錯誤的地方,如指針、內(nèi)存管理、運算符重載和多繼承等。一方面C++程序員可以很快遷移到Java;另一方面沒有編程經(jīng)驗的初學(xué)者也能很快學(xué)會Java。

  2. 面向?qū)ο?/span>

  面向?qū)ο笫荍ava重要的特性。Java是徹底的、純粹的面向?qū)ο笳Z言,在Java中“一切都是對象”。Java完全具有面向?qū)ο笕齻€基本特性:封裝、繼承和多態(tài),其中封裝性實現(xiàn)了模塊化和信息隱藏,繼承性實現(xiàn)了代碼的復(fù)用,用戶可以建立自己的類庫。而且Java采用的是相對簡單的面向?qū)ο蠹夹g(shù),去掉了多繼承等復(fù)雜的概念,只支持單繼承。

  3. 分布式

  Java語言就是為分布式系統(tǒng)而設(shè)計的。JDK(Java Development Kits,Java開發(fā)工具包)中包含了支持HTTP和FTP等基于TCP/IP協(xié)議的類庫。Java程序可以憑借URL打開并訪問網(wǎng)絡(luò)上的對象,其訪問方式與訪問本地文件系統(tǒng)幾乎完全相同。

  4. 結(jié)構(gòu)中立

  Java程序需要在很多不同網(wǎng)絡(luò)設(shè)備中運行,這些設(shè)備有很多不同類型的計算機和操作系統(tǒng)。為能夠使Java程序能在網(wǎng)絡(luò)的任何地方運行,Java編譯器編譯生成了與機器結(jié)構(gòu)(CPU和操作系統(tǒng))無關(guān)的字節(jié)碼(byte-code)文件。任何種類的計算機,只要可以運行Java虛擬機,字節(jié)碼文件就可以在該計算機上運行。

  5. 可移植

  體系結(jié)構(gòu)的中立也使得Java程序具有可移植性。針對不同的CPU和操作系統(tǒng)Java虛擬機有不同的版本,這樣就可以保證相同的Java字節(jié)碼文件可以移植到多個不同的平臺上運行。

  6. 解釋執(zhí)行

  為實現(xiàn)跨平臺,Java設(shè)計成為解釋執(zhí)行的,即Java源代碼文件首先被編譯成為字節(jié)碼文件,這些字節(jié)碼本身包含了許多編譯時生成的信息,在運行時候Java解釋器負(fù)責(zé)將字節(jié)碼文件解釋成為特定的機器碼進行運行。

中博教育軟件學(xué)校

  7. 健壯

  Java語言是強類型語言,它在編譯時進行代碼檢查,使得很多錯誤能夠在編譯期被發(fā)現(xiàn),不至于在運行期發(fā)生而導(dǎo)致系統(tǒng)崩潰。

  Java摒棄了C++中指針操作,指針是一種很多強大的技術(shù),能夠直接訪問內(nèi)存單元,但同時也很復(fù)雜,如果指針操控不好,會引起導(dǎo)致內(nèi)存分配錯誤、內(nèi)存泄漏等問題。而Java中則不會出現(xiàn)由指針?biāo)鶎?dǎo)致的問題。

  內(nèi)存管理方面C/C++等語言采用手動分配和釋放,經(jīng)常會導(dǎo)致內(nèi)存泄漏,從而導(dǎo)致系統(tǒng)崩潰。而Java 采用自動內(nèi)存垃圾回收機制,程序員不再需要管理內(nèi)存,從而減少內(nèi)存錯誤的發(fā)生,提高了程序的健壯性。

  8. 安全

  在Java程序執(zhí)行過程中,類裝載器負(fù)責(zé)將字節(jié)碼文件加載到Java虛擬機中,這個過程中由字節(jié)碼校驗器檢查代碼中是否存在著非法操作。如果字節(jié)碼校驗器檢驗通過,由Java解釋器負(fù)責(zé)把該字節(jié)碼解釋成為機器碼進行執(zhí)行,這種檢查可以防止木馬病毒。

  另外。Java虛擬機采用的是“沙箱”運行模式,即把Java程序的代碼和數(shù)據(jù)都限制在一定內(nèi)存空間里執(zhí)行,不允許程序訪問該內(nèi)存空間外的內(nèi)存。

  9. 高性能

  Java編譯器在編譯時對字節(jié)碼會進行一些優(yōu)化,使之生成高質(zhì)量的代碼。Java字節(jié)碼格式就是針對機器碼轉(zhuǎn)換而設(shè)計的,實際轉(zhuǎn)換時相當(dāng)簡便。Java在解釋運行時采用一種即時編譯技術(shù),可使Java程序的執(zhí)行速度提升很大。多年的發(fā)展Java虛擬機也有很多改進這都使得Java程序的執(zhí)行速度提升很大。

  10. 多線程

  Java是為網(wǎng)絡(luò)編程而設(shè)計的,這要求Java能夠并發(fā)處理多個任務(wù)。Java支持多線程編程,多線程機制可以實現(xiàn)并發(fā)處理多個任務(wù),互不干涉,不會由于某一任務(wù)處于等待狀態(tài)而影響了其它任務(wù)的執(zhí)行,這樣就可以容易的實現(xiàn)網(wǎng)絡(luò)上的實時交互操作。

  11. 動態(tài)

  Java應(yīng)用程序在運行過程中,可以動態(tài)的加載各種類庫,即使是更新類庫也不必重新編譯使用這一類庫的應(yīng)用程序。這一特點使之非常適合于網(wǎng)絡(luò)環(huán)境下運行,同時也非常有利于軟件的開發(fā)。

  1.3 Java平臺

  Java不僅是編程語言,還是一個開發(fā)平臺,Sun公司根據(jù)Java應(yīng)用領(lǐng)域的不同將Java分成三個平臺:Java SE、Java EE和Java ME。

  1.3.1 Java SE

  Java SE是Java Standard Edition,主要目的是為臺式機和工作站桌面應(yīng)用(Application)程序的版本。Java SE是其他平臺的基礎(chǔ),本書主要介紹的就是Java SE版本中的技術(shù)。

  Java SE中主要包含了:JRE(Java SE Runtime Environment,Java SE運行環(huán)境)、JDK(Java Development Kit,Java開發(fā)工具包)和Java核心類庫。如果只是運行Java程序,不考慮開發(fā)Java程序,那么只安裝JRE就可以了。在JRE中包含了Java程序運行所需要的Java虛擬機(JVM,Java Virtual Machine)。JDK中包含了JRE和一些開發(fā)工具,這些工具包括:編譯器、文檔生成器和文件打包等工具。

  另外,Java SE中還提供了Java應(yīng)用程序開發(fā)需要的基本的和核心的類庫,這些類庫:字符串、集合、輸入輸出、網(wǎng)絡(luò)通信和圖形用戶界面等。事實上學(xué)習(xí)Java就是在學(xué)習(xí)Java語法和Java類庫使用。

  1.3.2 Java EE

  Java EE是Java Enterprise Edition,主要目的是為簡化企業(yè)級系統(tǒng)的開發(fā)、部署和管理。Java EE是以Java SE為基礎(chǔ)的,并提供了一套服務(wù)、API接口和協(xié)議,能夠開發(fā)企業(yè)級分布式系統(tǒng)、Web應(yīng)用程序和業(yè)務(wù)組件等,其中的包括:JSP、Servlet、EJB、JNI和Java Mail等。

  1.3.3 Java ME

  Java ME是Java Micro Edition,主要是面向消費類電子產(chǎn)品,為消費電子產(chǎn)品提供一個Java的運行平臺,使得Java程序能夠在手機、機頂盒、PDA等產(chǎn)品上運行。Java ME在早期的諾基亞塞班手機系統(tǒng)有很多應(yīng)用,而現(xiàn)在的iOS和Android等智能手機中基本上沒有它的用武之地。(相關(guān)推薦:JAVA虛擬機體系結(jié)構(gòu)

  1.4 Java虛擬機

  Java應(yīng)用程序能夠跨平臺運行,主要是通過Java虛擬機實現(xiàn)的。不同軟硬件平臺Java虛擬機是不同的,Java虛擬機往下是不同的操作系統(tǒng)和CPU,使用或開發(fā)時需要下載不同的JRE或JDK版本。Java虛擬機往上是Java應(yīng)用程序,Java虛擬機屏蔽了不同軟硬件平臺,Java應(yīng)用程序不需要修改,不需要重新編譯直接可以在其他平臺上運行。


本文內(nèi)容、圖片由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至2353260942@qq.com 舉報,一經(jīng)查實,本站將立刻刪除。(如需投稿聯(lián)系管理員開通!)

? CopyRight njjava.com ???? 蘇ICP備14052071號

搶試聽名額

名額僅剩66名

教育改變生活

WE CHANGE LIVES