- 相關(guān)推薦
計(jì)算機(jī)二級Java語言的產(chǎn)生及其特點(diǎn)
Java是一個(gè)廣泛使用的網(wǎng)絡(luò)編程語言,它是一種新的計(jì)算概念。下面是百分網(wǎng)小編為大家搜索整理的關(guān)于計(jì)算機(jī)二級Java語言的產(chǎn)生及其特點(diǎn),歡迎參考學(xué)習(xí),希望對大家有所幫助!想了解更多相關(guān)信息請持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
1、Java產(chǎn)生的歷史
Java來自于Sun公司的一個(gè)叫Green的項(xiàng)目,其原先的目的是為家用消費(fèi)電子產(chǎn)品開發(fā)一個(gè)分布式代碼系統(tǒng),這樣我們可以把E-mail發(fā)給電冰箱、電視機(jī)等家用電器,對它們進(jìn)行控制,和它們進(jìn)行信息交流。開始,準(zhǔn)備采用C++,但C++太復(fù)雜,安全性差,最后基于C++開發(fā)一種新的語言O(shè)ak(Java的前身),Oak是一種用于網(wǎng)絡(luò)的精巧而安全的語言,Sun公司曾依此投標(biāo)一個(gè)交互式電視項(xiàng)目,但結(jié)果是被SGI打敗?蓱z的Oak幾乎無家可歸,恰巧這時(shí)MarkArdreesen開發(fā)的Mosaic和Netscape啟發(fā)了Oak項(xiàng)目組成員,他們用Java編制了HotJava瀏覽器,得到了Sun公司首席執(zhí)行官ScottMcNealy的支持,觸發(fā)了Java進(jìn)軍Internet。Java的取名也有一個(gè)趣聞,有一天,幾位Java成員組的會員正在討論給這個(gè)新的語言取什么名字,當(dāng)時(shí)他們正在咖啡館喝著Java(爪哇)咖啡,有一個(gè)人靈機(jī)一動說就叫Java怎樣,得到了其他人的贊賞,于是,Java這個(gè)名字就這樣傳開了。
2、Java的現(xiàn)狀
Java是Sun公司推出的新的一代面向?qū)ο蟪绦蛟O(shè)計(jì)語言,特別適合于Internet應(yīng)用程序開發(fā),它的平臺無關(guān)性直接威脅到Wintel的壟斷地位。一時(shí)間,\"連Internet,用Java編程\",成為技術(shù)人員的一種時(shí)尚。雖然新聞界的報(bào)導(dǎo)有些言過其實(shí),但Java作為軟件開發(fā)的一種革命性的技術(shù),其地位已被確立,這表現(xiàn)在以下幾個(gè)方面:1.計(jì)算機(jī)產(chǎn)業(yè)的許多大公司購買了Java的許可證,包括IBM,Apple,DEC,Adobe,SiliconGraphics,HP,Oracel,Toshiba,以及最不情愿的Microsoft。這一點(diǎn)說明,Java已得到了工業(yè)界的認(rèn)可。2.眾多的軟件開發(fā)商開始支持Java的軟件產(chǎn)品。例如:Borland公司正在開發(fā)的基于Java的快速應(yīng)用程序開發(fā)環(huán)境Latte,預(yù)計(jì)產(chǎn)品會在1996年中期發(fā)布。Borland公司的這一舉措,推動了Java進(jìn)入PC機(jī)軟件市場。Sun公司自己的Java開發(fā)環(huán)境JavaWorkshop已經(jīng)發(fā)布。數(shù)據(jù)庫廠商如:Illustra,Sysbase,Versant,Oracle都在開發(fā)CGI接口,支持HTML和Java。今天是以網(wǎng)絡(luò)為中心的計(jì)算時(shí)代,不支持HTML和Java,應(yīng)用程序的應(yīng)用范圍只能限于同質(zhì)的環(huán)境(相同的硬件平臺)。3.Intranet正在成為企業(yè)信息系統(tǒng)最佳的解決方案,而其中Java將發(fā)揮不可替代的作用。Intranet的目的是把Internet用于企業(yè)內(nèi)部的信息系統(tǒng),它的優(yōu)點(diǎn)表現(xiàn)在:便宜,易于使用和管理。用戶不管使用何種類型的機(jī)器和操作系統(tǒng),界面是統(tǒng)一的Intrnet瀏覽器,而數(shù)據(jù)庫、Web頁面、應(yīng)用程序(用Java編的Applet)則存在WWW服務(wù)器上,無論是開發(fā)人員,還是管理人員,抑或是用戶都可以受益于該解決方案。Java語言正在不斷發(fā)展和完善,Sun公司是主要的發(fā)展推動者,較通用的編譯環(huán)境有JDK(JavaDevelopKit)與JWS(JavaWorkshop)。還有很多其他公司正在開發(fā)Java語言的編譯器與集成環(huán)境,預(yù)計(jì)不久Java語言的正確性與效率都將會提高,用戶用Java編程和現(xiàn)在用C++編程一樣方便。
3、Java語言的特點(diǎn)
Java到底是一種什么樣的語言呢?Java是一種簡單的面象對象的分布式的解釋的健壯的安全的結(jié)構(gòu)中立的可移植的性能很優(yōu)異的多線程的動態(tài)的語言。
1.簡單
Java最初是為對家用電器進(jìn)行集成控制而設(shè)計(jì)的一種語言,因此它必須簡單明了。Java語言的簡單性主要體現(xiàn)在以下三個(gè)方面:1.Java的風(fēng)格類似于C++,因而C++程序員是非常熟悉的。從某種意義上講,Java語言是C及C++語言的一個(gè)變種,因此,C++程序員可以很快就掌握J(rèn)ava編程技術(shù)。2.Java摒棄了C++中容易引發(fā)程序錯誤的地方,如指針和內(nèi)存管理。3.Java提供了豐富的類庫。
2.面向?qū)ο?/p>
面向?qū)ο罂梢哉f是Java最重要的特性。Java語言的設(shè)計(jì)完全是面向?qū)ο蟮,它不支持類似C語言那樣的面向過程的程序設(shè)計(jì)技術(shù)。Java支持靜態(tài)和動態(tài)風(fēng)格的代碼繼承及重用。單從面向?qū)ο蟮奶匦詠砜矗琂ava類似于SmallTalk,但其它特性、尤其是適用于分布式計(jì)算環(huán)境的特性遠(yuǎn)遠(yuǎn)超越了SmallTalk。
3.分布式
Java包括一個(gè)支持HTTP和FTP等基于TCP/IP協(xié)議的子庫。因此,Java應(yīng)用程序可憑借URL打開并訪問網(wǎng)絡(luò)上的對象,其訪問方式與訪問本地文件系統(tǒng)幾乎完全相同。為分布環(huán)境尤其是Internet提?copy;動態(tài)內(nèi)容無疑是一項(xiàng)非常宏偉的任務(wù),但Java的語法特性卻使我們很容易地實(shí)現(xiàn)這項(xiàng)目標(biāo)。
4.健壯
Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯誤。類型檢查幫助檢查出許多開發(fā)早期出現(xiàn)的錯誤。Java自已操縱內(nèi)存減少了內(nèi)存出錯的可能性。Java還實(shí)現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能。這項(xiàng)功能特征大大縮短了開發(fā)Java應(yīng)用程序的周期。Java提供Null指針檢測數(shù)組邊界檢測異常出口字節(jié)代碼校驗(yàn)
5.結(jié)構(gòu)中立
另外,為了建立Java作為網(wǎng)絡(luò)的一個(gè)整體,Java將它的程序編譯成一種結(jié)構(gòu)中立的中間文件格式。只要有Java運(yùn)行系統(tǒng)的機(jī)器都能執(zhí)行這種中間代碼,F(xiàn)在,Java運(yùn)行系統(tǒng)有Solaris2.4(SPARC),Win32系統(tǒng)(Windows95和WindowsNT)等.Java源程序被編譯成一種高層次的與機(jī)器無關(guān)的byte-code格式語言,這種語言被設(shè)計(jì)在虛擬機(jī)上運(yùn)行,由機(jī)器相關(guān)的運(yùn)行調(diào)試器實(shí)現(xiàn)執(zhí)行。
6.安全
Java的安全性可從兩個(gè)方面得到保證。一方面,在Java語言里,象指針和釋放內(nèi)存等C++功能被刪除,避免了非法內(nèi)存操作。另一方面,當(dāng)Java用來創(chuàng)建瀏覽器時(shí),語言功能和一些瀏覽器本身提供的功能結(jié)合起來,使它更安全。Java語言在你的機(jī)器上執(zhí)行前,要經(jīng)過很多次的測試。它經(jīng)過代碼校驗(yàn),檢查代碼段的格式,檢測指針操作,對象操作是否過分以及試圖改變一個(gè)對象的類型。
6.1Byte-code校驗(yàn)
如果byte-code通過代碼校驗(yàn),沒有返回錯誤,我們可知道:代碼沒有堆棧上溢出和下溢出所有操作代碼參數(shù)類型都是正確的沒有發(fā)生非法數(shù)據(jù)轉(zhuǎn)換,如將整數(shù)轉(zhuǎn)換成指針。訪問對象操作是合法的
6.2類裝載
ClassLoader通過將本機(jī)類與網(wǎng)絡(luò)資源類的名稱分開,來保持安全性。因?yàn)檎{(diào)入類時(shí)總要經(jīng)過檢查,這樣避免了特洛伊木馬現(xiàn)象的出現(xiàn)。從網(wǎng)絡(luò)上下載的類被調(diào)進(jìn)一個(gè)與源相關(guān)的私有的名字域。當(dāng)一個(gè)私有類訪問另一個(gè)類時(shí),build-in(本機(jī)類)首先被檢查,然后檢查相關(guān)的類。這樣就避免了破壞本機(jī)類情況的出現(xiàn)。
7.可移植的
同體系結(jié)構(gòu)無關(guān)的特性使得Java應(yīng)用程序可以在配備了Java解釋器和運(yùn)行環(huán)境的任何計(jì)算機(jī)系統(tǒng)上運(yùn)行,這成為Java應(yīng)用軟件便于移植的良好基礎(chǔ)。但僅僅如此還不夠。如果基本數(shù)據(jù)類型設(shè)計(jì)依賴于具體實(shí)現(xiàn),也將為程序的移植帶來很大不便。例如在Windows3.1中整數(shù)(Integer)為16bits,在Windows95中整數(shù)為32bits,在DECAlpha中整數(shù)為64bits,在Intel486中為32bits。通過定義獨(dú)立于平臺的基本數(shù)據(jù)類型及其運(yùn)算,Java數(shù)據(jù)得以在任何硬件平臺上保持一致。Java語言的基本數(shù)據(jù)類型及其表示方式如下:byte8-bit二進(jìn)制補(bǔ)碼short16-bit二進(jìn)制補(bǔ)碼int32-bit二進(jìn)制補(bǔ)碼long64-bit二進(jìn)制補(bǔ)碼float32-bitIEEE754浮點(diǎn)數(shù)double32-bitIEEE754浮點(diǎn)數(shù)char16-bitUnicode字符。
在任何Java解釋器中,數(shù)據(jù)類型都是依據(jù)以上標(biāo)準(zhǔn)具體實(shí)現(xiàn)的。因?yàn)閹缀跄壳笆褂玫乃蠧PU都能支持以上數(shù)據(jù)類型、8~64位整數(shù)格式的補(bǔ)碼運(yùn)算和單/雙精度浮點(diǎn)運(yùn)算。Java編譯器本身就是用Java語言編寫的。Java運(yùn)算系統(tǒng)的編制依據(jù)POSIX方便移植的限制,用ANSIC語言寫成。Java語言規(guī)范中也沒有任何\"同具體實(shí)現(xiàn)相關(guān)\"的內(nèi)容。
8.解釋的
Java解釋器(運(yùn)行系統(tǒng))能直接運(yùn)行目標(biāo)代碼指令。鏈接程序通常比編譯程序所需資源少,所以程序員可以在創(chuàng)建源程序上花上更多的時(shí)間。
9.高性能
如果解釋器速度不慢,Java可以在運(yùn)行時(shí)直接將目標(biāo)代碼翻譯成機(jī)器指令。Sun用直接解釋器一秒鐘內(nèi)可調(diào)用300,000個(gè)過程。翻譯目標(biāo)代碼的速度與C/C++的性能沒什么區(qū)別。
10.多線程
Java提?copy;的多線程功能使得在一個(gè)程序里可同時(shí)執(zhí)行多個(gè)小任務(wù)。線程--有時(shí)也稱小進(jìn)程--是一個(gè)大進(jìn)程里分出來的小的獨(dú)立的進(jìn)程。因?yàn)镴ava實(shí)現(xiàn)的多線程技術(shù),所以比C和C++更鍵壯。多線程帶來的更大的好處是更好的交互性能和實(shí)時(shí)控制性能。當(dāng)然實(shí)時(shí)控制性能還取決于系統(tǒng)本身(UNIX,Windows,Macintosh等),在開發(fā)難易程度和性能上都比單線程要好。任何用過當(dāng)前瀏覽器的人,都感覺為調(diào)一副圖片而等待是一件很煩惱的事情。在Java里,你可用一個(gè)單線程來調(diào)一副圖片,而你可以訪問HTML里的其它信息而不必等它。
11.動態(tài)
Java的動態(tài)特性是其面向?qū)ο笤O(shè)計(jì)方法的發(fā)展。它允許程序動態(tài)地裝入運(yùn)行過程中所需要的類,這是C++語言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)所無法實(shí)現(xiàn)的。在C++程序設(shè)計(jì)過程中,每當(dāng)在類中增加一個(gè)實(shí)例變量或一種成員函數(shù)后,引用該類的所有子類都必須重新編譯,否則將導(dǎo)致程序崩潰。Java從如下幾方面采取措施來解決這個(gè)問題。Java編譯器不是將對實(shí)例變量和成員函數(shù)的引用編譯為數(shù)值引用,而是將符號引用信息在字節(jié)碼中保存下傳遞給解釋器,再由解釋器在完成動態(tài)連接類后,將符號引用信息轉(zhuǎn)換為數(shù)值偏移量。這樣,一個(gè)在存儲器生成的對象不在編譯過程中決定,而是延遲到運(yùn)行時(shí)由解釋器確定的。這樣,對類中的變量和方法進(jìn)行更新時(shí)就不至于影響現(xiàn)存的代碼。解釋執(zhí)行字節(jié)碼時(shí),這種符號信息的查找和轉(zhuǎn)換過程僅在一個(gè)新的名字出現(xiàn)時(shí)才進(jìn)行一次,隨后代碼便可以全速執(zhí)行。在運(yùn)行時(shí)確定引用的好處是可以使用已被更新的類,而不必?fù)?dān)心會影響原有的代碼。如果程序連接了網(wǎng)絡(luò)中另一系統(tǒng)中的某一類,該類的所有者也可以自由地對該類進(jìn)行更新,而不會使任何引用該類的程序崩潰。Java還簡化了使用一個(gè)升級的或全新的協(xié)議的方法。如果你的系統(tǒng)運(yùn)行Java程序時(shí)遇到了不知怎樣處理的程序,沒關(guān)系,Java能自動下載你所需要的功能程序。
4、與C和C++語言的異同
Java提供了一個(gè)功能強(qiáng)大語言的所有功能,但幾乎沒有一點(diǎn)含混特征。C++安全性不好,但C和C++還是被大家所接受,所以Java設(shè)計(jì)成C++形式,讓大家很容易學(xué)習(xí)。Java去掉了C++語言的許多功能,讓Java的語言功能很精煉,并增加了一些很有用的功能,Java去掉了以下幾個(gè)C和C++功能和特征:指針運(yùn)算結(jié)構(gòu)typedefs#define需要釋放內(nèi)存全局變量的定義這個(gè)功能都是很容易引起錯誤的地方。
5、Java的應(yīng)用簡介
1.Web瀏覽
Web瀏覽是現(xiàn)在國際網(wǎng)甚至局域網(wǎng)的主要使用方式。文檔能很容易地顯示文本和各種圖片,他還能提供超文本鏈接。這些瀏覽器調(diào)用HTML語言寫的文檔,HTML/WWW瀏覽器技術(shù)只限于文本和圖象。如果你想播放一種聲音或運(yùn)行一個(gè)演示程序,你不得不下載那個(gè)文件并用你本機(jī)上的能理解和運(yùn)行那個(gè)文件格式的程序來播放它。Java程序和它的瀏覽器HotJava,提供了可讓你的瀏覽器運(yùn)行程序的方法。你能從你的瀏覽器里直接播放聲音。你還能播放頁面里的動畫。Java還能告訴你的瀏覽器怎樣處理新的類型文件。當(dāng)我們能在2400baud線上傳輸視頻圖象時(shí),HotJava將能顯示這些視頻。
2.網(wǎng)絡(luò)應(yīng)用系統(tǒng)
Java是一種與平臺無關(guān)的語言,因此用Java開發(fā)的網(wǎng)絡(luò)應(yīng)用系統(tǒng)可以在各種平臺上運(yùn)行,大大增加了開發(fā)效率,減少重復(fù)勞動。而且,Java集成的網(wǎng)絡(luò)功能分有利于開發(fā)網(wǎng)絡(luò)應(yīng)用系統(tǒng)。
小結(jié):
1.Java的產(chǎn)生與流行是當(dāng)今internet發(fā)展的客觀要求。
2.java是一門各方面性能都很好的編程語言,它的基本特點(diǎn)是簡單、面象對象、分布式、解釋的、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、性能很優(yōu)異的、多線程的、動態(tài)的。分適合在internet環(huán)境上開發(fā)應(yīng)用系統(tǒng)。
3.java可以制作大部分網(wǎng)絡(luò)應(yīng)用程序系統(tǒng),而且與當(dāng)今流行的WWW瀏覽器結(jié)合得很好。
【計(jì)算機(jī)二級Java語言的產(chǎn)生及其特點(diǎn)】相關(guān)文章:
Java語言的產(chǎn)生及其特點(diǎn)03-29
Java語言的基本特點(diǎn)03-29
Java語言的編程特點(diǎn)03-18
Java語言基本特點(diǎn)11-25
Java語言有什么特點(diǎn)02-20
Java語言的5大特點(diǎn)08-27
計(jì)算機(jī)二級JAVA考試構(gòu)建JAVA程序201712-06