- Java語言程序設計與實現(xiàn)(微課版)
- 張桓 徐麗
- 2575字
- 2020-05-22 12:54:45
任務一 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)
- C#程序設計實訓指導書
- JavaScript 從入門到項目實踐(超值版)
- 單片機C語言程序設計實訓100例:基于STC8051+Proteus仿真與實戰(zhàn)
- Essential Angular
- Apache Karaf Cookbook
- 游戲程序設計教程
- PhpStorm Cookbook
- Learning FuelPHP for Effective PHP Development
- SQL Server 2008中文版項目教程(第3版)
- Java并發(fā)編程:核心方法與框架
- Microsoft Dynamics GP 2013 Cookbook
- 數(shù)據(jù)結構與算法詳解
- C++面向對象程序設計
- Swift 2 Blueprints
- 代碼整潔之道:程序員的職業(yè)素養(yǎng)