官术网_书友最值得收藏!

任務一 Java的起源

任務要求

本任務要求了解Java語言的由來、Java的產生、Java與Internet、Java的字節(jié)碼以及Java常用語。

任務實現(xiàn)

目前Java語言在全世界是使用最為廣泛的計算機編程語言之一。它容易學習而且非常好用,如果你學習過其他的編程語言,如C++,就會覺得C++和Java非常相似,但是我們知道,Java和C++是兩種不同的語言,Java只需理解一些最基本的概念,就能夠編寫出各種應用程序。Java省略了運算符重載、多重繼承等模糊不清的概念,C++語言中許多易混淆的概念,很多被Java扔掉了,或者用一種更加容易理解的方式去實現(xiàn),所以Java相對于C++是簡單的。

微課:Java概述

(一)Java的由來

Java總是和C++聯(lián)系在一起,而C++則是從C語言派生而來的,所以Java語言繼承了這兩種語言的大部分特性。Java的語法是從C繼承的,Java許多面向對象的特性受到C++的影響。事實上,Java中幾個自定義的特性都來自于或可以追溯到它的前驅,而且Java語言的產生與過去30年中計算機語言細致改進和不斷發(fā)展密切相關。

(二)Java的產生

Java是由詹姆斯·高斯林、帕特里克·諾頓等于1991年在Sun Microsystems公司設計出來的。開發(fā)第一個版本花了18個月。該語言開始名叫“Oak”,于1995年更名為“Java”。從1992的秋天Oak問世到1995的春天公開發(fā)布Java語言,許多人對Java的設計和改進作出了貢獻。

計算機語言的革新靠兩個因素驅動:對計算環(huán)境改變的適應和編程藝術的進步。環(huán)境的變化促使Java這種獨立于平臺的語言注定成為Internet上的分布式編程語言。同時,Java也改變了人們的編程方式,特別是Java對C++使用的面向對象范例進行的增強和完善。所以,Java不是孤立存在的一種語言,而是計算機語言多年來的演變結果。僅這個事實就足以證明Java在計算機語言歷史上的地位。Java對Internet編程的影響就如同C對系統(tǒng)編程的影響一樣:革命的力量將改變世界。

(三)Java對Internet為什么重要

Internet使Java成為網(wǎng)上最流行的編程語言,同時Java對Internet的影響也意義深遠。網(wǎng)上程序在動態(tài)性上是令人滿意的,但它們在安全性和可移植性方面也顯示出嚴重的缺陷。在Java產生以前,有一半的對象實體無法進入網(wǎng)絡世界,是Java為它們打開了便利之門,而且在這個過程中定義了一種全新的程序形式:applet(小應用程序)。

1.Java小應用程序和應用程序

Java可用來生成兩類程序:應用程序(Applications)和Java applet(小應用程序)。應用程序是可以在計算機的操作系統(tǒng)中運行的程序,從這一方面來說,用Java編制的應用程序多多少少與使用C或C++編制的應用程序有些類似。在創(chuàng)建應用程序時,Java與其他計算機語言沒有大的區(qū)別。而Java的重要性就在于它具有編制小應用程序的功能。小應用程序是可以在Internet中傳輸并在兼容Java的Web瀏覽器中運行的應用程序。小應用程序實際上就是小型的Java程序,能像圖像文件、聲音文件和視頻片段那樣通過網(wǎng)絡動態(tài)下載。

它與其他文件的重要差別是,小應用程序是一個智能的程序,能對用戶的輸入作出反應,并且能動態(tài)變化,而不是一遍又一遍地播放同一動畫或聲音。

如果Java不能解決兩個關于小應用程序最棘手的問題:安全性和可移植性,那么小應用程序就不會如此令人激動。在繼續(xù)下一個話題之前,先說明以下這兩個術語對Internet的意義。

2.安全性

正如你知道的那樣,每次下載一個“正常”的程序時,都要冒著被病毒感染的危險。在Java出現(xiàn)以前,大多數(shù)用戶并不經常下載可執(zhí)行的程序文件。即使下載了程序,在運行它們以前,也都要進行病毒檢查。盡管如此,大多數(shù)用戶還是擔心他們的系統(tǒng)可能被病毒感染。除了病毒,另一種惡意的程序也必須警惕。這種惡意的程序可通過搜索計算機本地文件系統(tǒng)的內容來收集用戶的私人信息,如信用卡號碼、銀行賬戶結算和口令。Java在網(wǎng)絡應用程序和用戶的計算機之間提供了一道防火墻(Firewall),消除了用戶的這些顧慮。

當使用一個兼容Java的Web瀏覽器時,可以安全地下載Java小應用程序,不必擔心病毒感染或惡意的企圖。Java實現(xiàn)這種保護功能的方式是,將Java程序限制在Java運行環(huán)境中,不允許它訪問計算機的其他部分,后面將介紹這個過程是如何實現(xiàn)的。下載小應用程序并能確保它對客戶機的安全性不會造成危害是Java的一個最重要的方面。

3.可移植性

正如前面所討論的,許多類型的計算機和操作系統(tǒng)都連接到Internet上。要使連接到Internet上的各種各樣的平臺都能動態(tài)下載同一個程序,就需要有能夠生成可移植性執(zhí)行代碼的方法。很快你將會看到,有助于保證安全性的機制同樣也有助于建立可移植性。實際上,Java對這兩個問題的解決方案是優(yōu)美的,也是高效的。

(四)Java的魔力:字節(jié)碼

Java解決上述兩個問題——安全性和可移植性的關鍵在于Java編譯器的輸出并不是可執(zhí)行的代碼,而是字節(jié)碼(Bytecode)。字節(jié)碼是一套設計用來在Java運行時系統(tǒng)下執(zhí)行的高度優(yōu)化的指令集,該Java運行時系統(tǒng)稱為Java虛擬機(Java Virtual Machine,JVM)。在其標準形式下,JVM就是一個字節(jié)碼解釋器。這可能有點讓人吃驚,因為像C++之類語言的編譯結果是可執(zhí)行的代碼。事實上,出于對性能的考慮,許多現(xiàn)代語言都被設計為編譯型,而不是解釋型。然而,正是通過JVM運行Java程序,才有助于解決在Internet上下載程序的主要問題。這就是Java輸出字節(jié)碼的原因。

將Java程序翻譯成字節(jié)碼,有助于它更容易地在一個大范圍的環(huán)境下運行程序。原因非常直接:只要在各種平臺上都實現(xiàn)Java虛擬機就可以了。在一個給定的系統(tǒng)中,只要系統(tǒng)運行包存在,任何Java程序就可以在該系統(tǒng)上運行。記住:盡管不同平臺的Java虛擬機的細節(jié)有所不同,但它們都解釋同樣的Java字節(jié)碼。如果一個Java程序被編譯為本機代碼,那么對于連接到Internet上的每一種CPU類型,都要有該程序的對應版本。這當然不是一個可行的解決方案。因此,對字節(jié)碼進行解釋是編寫真正可移植性程序最容易的方法。對Java程序進行解釋也有助于它的安全性。因為每個Java程序的運行都在Java虛擬機的控制之下,Java虛擬機可以包含這個程序并且能阻止它在系統(tǒng)之外產生副作用。正如你將看到的,Java語言特有的某些限制增強了它的安全性。

被解釋的程序的運行速度通常確實會比同一個程序被編譯為可執(zhí)行代碼的運行速度慢一些。但是對Java來說,這兩者之間的差別不太大。使用字節(jié)碼能夠使Java運行時系統(tǒng)的程序執(zhí)行速度比你想象的快得多。

(五)Java常用語

不介紹Java常用語,對Java的總體介紹就是不完整的。盡管促使Java誕生的源動力是可移植性和安全性,但在Java語言最終成型的過程中,其他一些因素也起了重要的作用。Java設計開發(fā)小組的成員總結了這些關鍵因素,稱其為Java的專門用語,包括下面幾個。

·簡單(Simple)

·安全(Secure)

·可移植(Portable)

·面向對象(Object-oriented)

·健壯(Robust)

·多線程(Multithreaded)

·體系結構中立(Architecture-neutral)

·解釋執(zhí)行(Interpreted)

·高性能(High performance)

·分布式(Distributed)

·動態(tài)(Dynamic)

主站蜘蛛池模板: 崇阳县| 富锦市| 孝感市| 城口县| 西城区| 潢川县| 池州市| 鹤山市| 小金县| 格尔木市| 秦皇岛市| 奈曼旗| 木里| 千阳县| 遂溪县| 桐城市| 循化| 抚宁县| 遂宁市| 德清县| 乌海市| 阆中市| 安新县| 公安县| 景谷| 庆云县| 香港| 阿城市| 昌吉市| 改则县| 望江县| 祁东县| 曲阳县| 饶阳县| 加查县| 伊宁县| 苏尼特右旗| 东丰县| 华蓥市| 隆德县| 吉隆县|