JAVA資料庫
輸入機(jī)構(gòu)/課程/服務(wù)名稱

到底什么是Java?

2021-11-27 16:54:26
# IT培訓(xùn) # Java



java是一門面向?qū)ο蟮木幊陶Z言。

java語言具有功能強(qiáng)大和簡單易用兩個特征,具有簡單性、面向?qū)ο蟆⒎植际降忍攸c,可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。


一、編程環(huán)境

JDK(Java Development Kit)稱為Java開發(fā)包或Java開發(fā)工具,是一個編寫Java的Applet小程序和應(yīng)用程序的程序開發(fā)環(huán)境。JDK是整個Java的核心,包括了Java運(yùn)行環(huán)境(Java Runtime Envirnment),一些Java工具和Java的核心類庫(Java API)。不論什么Java應(yīng)用服務(wù)器實質(zhì)都是內(nèi)置了某個版本的JDK。主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如,IBM公司開發(fā)的JDK,BEA公司的Jrocket,還有GNU組織開發(fā)的JDK。

另外,可以把Java API類庫中的Java SE API子集和Java虛擬機(jī)這兩部分統(tǒng)稱為JRE(JAVA Runtime Environment),JRE是支持Java程序運(yùn)行的標(biāo)準(zhǔn)環(huán)境。

JRE是個運(yùn)行環(huán)境,JDK是個開發(fā)環(huán)境。因此寫Java程序的時候需要JDK,而運(yùn)行Java程序的時候就需要JRE。而JDK里面已經(jīng)包含了JRE,因此只要安裝了JDK,就可以編輯Java程序,也可以正常運(yùn)行Java程序。但由于JDK包含了許多與運(yùn)行無關(guān)的內(nèi)容,占用的空間較大,因此運(yùn)行普通的Java程序無須安裝JDK,而只需要安裝JRE即可。


二、編程工具

Eclipse:一個開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺[4]。

NetBeans:開放源碼的Java集成開發(fā)環(huán)境,適用于各種客戶機(jī)和Web應(yīng)用。

IntelliJ IDEA:在代碼自動提示、代碼分析等方面的具有很好的功能。[5]

MyEclipse:由Genuitec公司開發(fā)的一款商業(yè)化軟件,是應(yīng)用比較廣泛的Java應(yīng)用程序集成開發(fā)環(huán)境。

EditPlus:如果正確配置Java的編譯器“Javac”以及解釋器“Java”后,可直接使用EditPlus編譯執(zhí)行Java程序。


三、語言特點

1.簡單性

Java看起來設(shè)計得很像C++,但是為了使語言小和容易熟悉,設(shè)計者們把C++語言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。Java還剔除了C++的操作符過載(overload)和多繼承特征,并且不使用主文件,免去了預(yù)處理程序。因為Java沒有結(jié)構(gòu),數(shù)組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現(xiàn)自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發(fā)上。

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

Java是一個面向?qū)ο蟮恼Z言。對程序員來說,這意味著要注意應(yīng)中的數(shù)據(jù)和操縱數(shù)據(jù)的方法(method),而不是嚴(yán)格地用過程來思考。在一個面向?qū)ο蟮南到y(tǒng)中,類(class)是數(shù)據(jù)和操作數(shù)據(jù)的方法的集合。數(shù)據(jù)和方法一起描述對象(object)的狀態(tài)和行為。每一對象是其狀態(tài)和行為的封裝。類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。Java程序是用類來組織的。

Java還包括一個類的擴(kuò)展集合,分別組成各種程序包(Package),用戶可以在自己的程序中使用。例如,Java提供產(chǎn)生圖形用戶接口部件的類(java.awt包),這里awt是抽象窗口工具集(abstract windowing toolkit)的縮寫,處理輸入輸出的類(java.io包)和支持網(wǎng)絡(luò)功能的類(java.net包)。

3.分布性

Java設(shè)計成支持在網(wǎng)絡(luò)上應(yīng)用,它是分布式語言。Java既支持各種層次的網(wǎng)絡(luò)連接,又以Socket類支持可靠的流(stream)網(wǎng)絡(luò)連接,所以用戶可以產(chǎn)生分布式的客戶機(jī)和服務(wù)器。

網(wǎng)絡(luò)變成軟件應(yīng)用的分布運(yùn)載工具。Java程序只要編寫一次,就可到處運(yùn)行。

4.編譯和解釋性

Java編譯程序生成字節(jié)碼(byte-code),而不是通常的機(jī)器碼。Java字節(jié)碼提供對體系結(jié)構(gòu)中性的目標(biāo)文件格式,代碼設(shè)計成可有效地傳送程序到多個平臺。Java程序可以在任何實現(xiàn)了Java解釋程序和運(yùn)行系統(tǒng)(run-time system)的系統(tǒng)上運(yùn)行。

在一個解釋性的環(huán)境中,程序開發(fā)的標(biāo)準(zhǔn)“鏈接”階段大大消失了。如果說Java還有一個鏈接階段,它只是把新類裝進(jìn)環(huán)境的過程,它是增量式的、輕量級的過程。因此,Java支持快速原型和容易試驗,它將導(dǎo)致快速程序開發(fā)。這是一個與傳統(tǒng)的、耗時的“編譯、鏈接和測試”形成鮮明對比的精巧的開發(fā)過程。

5.穩(wěn)健性

原來是用作編寫消費類家用電子產(chǎn)品軟件的語言,所以它是被設(shè)計成寫高可靠和穩(wěn)健軟件的。Java消除了某些編程錯誤,使得用它寫可靠軟件相當(dāng)容易。

Java是一個強(qiáng)類型語言,它允許擴(kuò)展編譯時檢查潛在類型不匹配問題的功能。Java要求顯式的方法聲明,它不支持C風(fēng)格的隱式聲明。這些嚴(yán)格的要求保證編譯程序能捕捉調(diào)用錯誤,這就導(dǎo)致更可靠的程序。

可靠性方面最重要的增強(qiáng)之一是Java的存儲模型。Java不支持指針,它消除重寫存儲和訛誤數(shù)據(jù)的可能性。類似地,Java自動的“無用單元收集”預(yù)防存儲漏泄和其它有關(guān)動態(tài)存儲分配和解除分配的有害錯誤。Java解釋程序也執(zhí)行許多運(yùn)行時的檢查,諸如驗證所有數(shù)組和串訪問是否在界限之內(nèi)。

異常處理是Java中使得程序更穩(wěn)健的另一個特征。異常是某種類似于錯誤的異常條件出現(xiàn)的信號。使用try/catch/finally語句,程序員可以找到出錯的處理代碼,這就簡化了出錯處理和恢復(fù)的任務(wù)。

6.安全性

Java的存儲分配模型是它防御惡意代碼的主要方法之一。Java沒有指針,所以程序員不能得到隱蔽起來的內(nèi)幕和偽造指針去指向存儲器。更重要的是,Java編譯程序不處理存儲安排決策,所以程序員不能通過查看聲明去猜測類的實際存儲安排。編譯的Java代碼中的存儲引用在運(yùn)行時由Java解釋程序決定實際存儲地址。

Java運(yùn)行系統(tǒng)使用字節(jié)碼驗證過程來保證裝載到網(wǎng)絡(luò)上的代碼不違背任何Java語言限制。這個安全機(jī)制部分包括類如何從網(wǎng)上裝載。例如,裝載的類是放在分開的名字空間而不是局部類,預(yù)防惡意的小應(yīng)用程序用它自己的版本來代替標(biāo)準(zhǔn)Java類。

7.可移植性

Java使得語言聲明不依賴于實現(xiàn)的方面。例如,Java顯式說明每個基本數(shù)據(jù)類型的大小和它的運(yùn)算行為(這些數(shù)據(jù)類型由Java語法描述)。

Java環(huán)境本身對新的硬件平臺和操作系統(tǒng)是可移植的。Java編譯程序也用Java編寫,而Java運(yùn)行系統(tǒng)用ANSIC語言編寫。

8.高性能

Java是一種先編譯后解釋的語言,所以它不如全編譯性語言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設(shè)計者制作了“及時”編譯程序,它能在運(yùn)行時把Java字節(jié)碼翻譯成特定CPU(中央處理器)的機(jī)器代碼,也就是實現(xiàn)全編譯了。

Java字節(jié)碼格式設(shè)計時考慮到這些“及時”編譯程序的需要,所以生成機(jī)器代碼的過程相當(dāng)簡單,它能產(chǎn)生相當(dāng)好的代碼。

9.多線索性

Java是多線索語言,它提供支持多線索的執(zhí)行(也稱為輕便過程),能處理不同任務(wù),使具有線索的程序設(shè)計很容易。Java的lang包提供一個Thread類,它支持開始線索、運(yùn)行線索、停止線索和檢查線索狀態(tài)的方法。

Java的線索支持也包括一組同步原語。這些原語是基于監(jiān)督程序和條件變量風(fēng)范,由C.A.R.Haore開發(fā)的廣泛使用的同步化方案。用關(guān)鍵詞synchronized,程序員可以說明某些方法在一個類中不能并發(fā)地運(yùn)行。這些方法在監(jiān)督程序控制之下,確保變量維持在一個一致的狀態(tài)。

10.動態(tài)性

Java語言設(shè)計成適應(yīng)于變化的環(huán)境,它是一個動態(tài)的語言。例如,Java中的類是根據(jù)需要載入的,甚至有些是通過網(wǎng)絡(luò)獲取的。


*文章內(nèi)容和圖片均來源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪除。

查看剩余內(nèi)容
loading
Hi,我是教育寶平臺顧問 添加我的微信,在查找或下載資料時,有任何問題,我會隨時為您解決~
loading
掃描二維碼 添加顧問微信

點贊

收藏

資深學(xué)習(xí)規(guī)劃師,免費幫您答疑解惑,定制學(xué)習(xí)方案
限時免費咨詢
喜歡此內(nèi)容的人還喜歡
  1. 做java開發(fā),java基礎(chǔ)是最需要下功夫的一項
    攻略
    # IT培訓(xùn) # Java
  2. 推薦了多本Java進(jìn)階專業(yè)書籍
    攻略
    # IT培訓(xùn) # Java
  3. 經(jīng)驗豐富的 Java 程序員的 10 個基本工具
    攻略
    # Java # IT培訓(xùn)
教育寶IT技術(shù)頻道
教育寶致力于打造中國最專業(yè)的IT技術(shù)學(xué)習(xí)平臺,為IT技術(shù)學(xué)員、教育機(jī)構(gòu)、從業(yè)者和上下游搭建連接、互動、交流和賦能平臺。