蔣澤宇
摘要:時(shí)代在發(fā)展,科技的進(jìn)步已經(jīng)超越了我們的想象,現(xiàn)在有非常多的計(jì)算機(jī)科技產(chǎn)品能夠帶給我們很好的生活體驗(yàn)。計(jì)算機(jī)技術(shù)的飛速發(fā)展,離不開(kāi)基于計(jì)算機(jī)語(yǔ)言的軟件開(kāi)發(fā)。Java語(yǔ)言應(yīng)用范圍廣泛,實(shí)現(xiàn)功能強(qiáng)大,是靜態(tài)面向?qū)ο笳Z(yǔ)言編程的代表。它實(shí)現(xiàn)了面向?qū)ο罄碚摚瑯O大提高了開(kāi)發(fā)人員的編程效率,我們應(yīng)該著重研究和開(kāi)發(fā)這門語(yǔ)言。本文主要闡述了Java語(yǔ)言的優(yōu)勢(shì)特點(diǎn),以及具體應(yīng)用方法,希望能為Java軟件開(kāi)發(fā)人員提供一定的參考性。
Abstract: The times are evolving, and technological progress has surpassed our imagination. There are now many computer technology products that can bring us a good life experience. The rapid development of computer technology is inseparable from software development based on computer language. Java language has a wide range of applications and powerful functions and it is a representative of static object-oriented language programming. It implements the object-oriented theory and greatly improves the programming efficiency of developers, so we should focus on researching and developing this language. This article mainly explains the advantages of Java language, as well as specific application methods, hoping to provide a certain reference for Java software developers.
關(guān)鍵詞:Java語(yǔ)言;軟件開(kāi)發(fā);計(jì)算機(jī);編程
Key words: Java language;software development;computer;programming
中圖分類號(hào):TP312? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào):1006-4311(2020)14-0261-03
0? 引言
Java語(yǔ)言是一種面向?qū)ο缶幊陶Z(yǔ)言,它具有C++程序設(shè)計(jì)語(yǔ)言的優(yōu)點(diǎn),卻比C++語(yǔ)言更加簡(jiǎn)單易用。它去除了C++語(yǔ)言中的“多繼承”,取代“多繼承”的則是“接口”。Java語(yǔ)言沒(méi)有結(jié)構(gòu)這一概念,都是對(duì)象和數(shù)組,所以也不需要復(fù)雜的指針。它具有很容易就能理解的語(yǔ)義和操作簡(jiǎn)單的語(yǔ)法,并提供了一個(gè)非常龐大的“庫(kù)”,很多時(shí)候不用自己動(dòng)手編寫功能函數(shù)和數(shù)據(jù)庫(kù)功能,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),他們可以把重點(diǎn)放在數(shù)據(jù)和數(shù)據(jù)接口上面,這是面向?qū)ο缶幊痰膬?yōu)勢(shì)。
1? 關(guān)于Java語(yǔ)言的相關(guān)概述
Java語(yǔ)言是由SUN公司一個(gè)團(tuán)隊(duì)推出的高級(jí)編程語(yǔ)言,起初只是小范圍應(yīng)用,但隨著互聯(lián)網(wǎng)時(shí)代的發(fā)展,Java語(yǔ)言逐漸興起,成為許多大型開(kāi)發(fā)項(xiàng)目的首選語(yǔ)言。在世界編程語(yǔ)言排行榜中,Java語(yǔ)言居于第二名的位置,僅次于C語(yǔ)言。這是因?yàn)镴ava相對(duì)于其他語(yǔ)言來(lái)說(shuō),它不僅僅只是一個(gè)編程語(yǔ)言,它還有自己的一個(gè)庫(kù),將許多很復(fù)雜的操作,例如數(shù)據(jù)庫(kù)存儲(chǔ),實(shí)現(xiàn)了最大程度上的簡(jiǎn)化。對(duì)于編程人員來(lái)說(shuō),Java語(yǔ)言簡(jiǎn)單好學(xué)易入門,由于C++語(yǔ)言開(kāi)發(fā)在前,Java語(yǔ)言中很多部分借鑒了C++語(yǔ)言,但是又去除了C++中較為冗余的部分。Java會(huì)自動(dòng)處理對(duì)象之間的引用,使得開(kāi)發(fā)人員不必為存儲(chǔ)空間而過(guò)多考慮,可以把更多精力放在研發(fā)上面。從這些來(lái)看,Java語(yǔ)言就顯得比較具有實(shí)用性,而且更加靈活,能夠較大化滿足用戶需求,大大提高了效率,有很大的發(fā)展前景。
2? Java編程語(yǔ)言的特性
2.1 面向?qū)ο笮?/p>
Java語(yǔ)言是一個(gè)面向?qū)ο笳Z(yǔ)言。Java的面向?qū)ο笮钥梢哉f(shuō)是一個(gè)最重要的特性。它把對(duì)象作為基本的單元,封裝在類(class)中。類是數(shù)據(jù)和方法的集合,按一定的體系和層次安排,使它的子類可以繼承他的父類,通過(guò)繼承,程序可以提高它本身的可重用性。
面向過(guò)程程序設(shè)計(jì),本質(zhì)就是定義一個(gè)函數(shù)然后在程序中再調(diào)用它。(在C++中作為成員函數(shù)調(diào)用)
2.2 簡(jiǎn)單性
Java語(yǔ)言與C++語(yǔ)言看起來(lái)有很多相似之處,因此能夠掌握C/C++的開(kāi)發(fā)人員是非常熟悉Java語(yǔ)言的,能夠很快掌握J(rèn)ava語(yǔ)言,它吸收了C++中面向?qū)ο蟮母拍睿褜?duì)象封裝在類中,使程序本身更加具有簡(jiǎn)潔性。Java語(yǔ)言不僅僅吸收了C++中部分概念,它還摒棄了C++語(yǔ)言中較為復(fù)雜的一些內(nèi)容,例如多繼承和過(guò)載(overload)。而且Java沒(méi)有頭文件,所以用戶不必過(guò)多擔(dān)心數(shù)據(jù)存儲(chǔ)問(wèn)題。指針和內(nèi)存在C++中也是非常容易引起錯(cuò)誤的一部分,在Java語(yǔ)言中同樣也摒棄了這一部分。Java語(yǔ)言本身提供的類庫(kù)也是非常豐富的,開(kāi)發(fā)人員可以直接調(diào)用類庫(kù)里的一些類,這樣能夠很大程度上提高開(kāi)發(fā)程序的效率。
Java語(yǔ)言開(kāi)發(fā)的軟件能夠獨(dú)立運(yùn)行在小型機(jī)器上,可用于一些嵌入式設(shè)備。
2.3 安全性
Java編程語(yǔ)言的存儲(chǔ)模型能夠很好的防御惡意代碼的攻擊。很多時(shí)候,在Java的安全機(jī)制下蒙混過(guò)去是一件很不容易的事情。Java就可以防范一些攻擊,例如,Java語(yǔ)言中沒(méi)有指針等C++功能,所以就避免了許多可能存在的非法操作。Java語(yǔ)言在執(zhí)行之前,都會(huì)多次進(jìn)行安全檢測(cè),通過(guò)代碼校驗(yàn),保證不違背任何Java的語(yǔ)言機(jī)制,檢測(cè)代碼行格式和對(duì)對(duì)象的操作是否合法。Java在執(zhí)行過(guò)程中,總是遵守面向?qū)ο缶幊痰囊?guī)則,只提供接口給用戶,把數(shù)據(jù)卻封裝起來(lái),確保了數(shù)據(jù)的安全性。類似蠕蟲(chóng)這種病毒,對(duì)于Java語(yǔ)言的機(jī)制來(lái)說(shuō)也是足以抵擋的,因?yàn)樗鼤?huì)自動(dòng)進(jìn)行數(shù)組邊界檢查,這樣就不會(huì)存在數(shù)據(jù)溢出等各種安全漏洞。Java1.1以后,還添加了數(shù)字簽名類,通過(guò)數(shù)字簽名類,可以確定你在此機(jī)器上的權(quán)限。Java由于它的高安全系數(shù)得到了廣大開(kāi)發(fā)人員的關(guān)注。
2.4 可移植性
2.4.1 源代碼可移植性
Java的源代碼都是可移植的。這就意味著,在任何編譯器、主機(jī)或是操作系統(tǒng)執(zhí)行同一個(gè)代碼,都會(huì)產(chǎn)生一樣的效果。但其實(shí)C/C++也是一樣的,只不過(guò)它們?cè)谀承┘?xì)節(jié)上面沒(méi)有特別嚴(yán)格的規(guī)定,這就導(dǎo)致了在某些編譯器下編譯C/C++代碼會(huì)產(chǎn)生不同的結(jié)果。Java在這些細(xì)節(jié)方面有非常嚴(yán)格的語(yǔ)義結(jié)構(gòu),所以在任何編譯器下運(yùn)行的效果都是一樣的。
2.4.2 CPU可移植性
很多編程語(yǔ)言只能運(yùn)行在一種主機(jī)上面,例如Intel x68系列,很多語(yǔ)言并不能同時(shí)適應(yīng)多種CPU,若你需要在多種CPU上(MIPS、SPARC)運(yùn)行你的代碼,就必須再編譯多次代碼。但是Java就不一樣了,Java語(yǔ)言的虛擬機(jī)使得它可以運(yùn)行在任何裝有Java虛擬機(jī)的主機(jī)上面。
2.4.3 操作系統(tǒng)可移植性
大部分傳統(tǒng)的程序設(shè)計(jì)語(yǔ)言,例如C/C++語(yǔ)言,只能在Windows操作系統(tǒng)下運(yùn)行,在Linux或是Macintosh上是不能運(yùn)行的,即使是重新編譯過(guò)也不能執(zhí)行。但是Java語(yǔ)言就不同了,它有自身功能較為強(qiáng)大的庫(kù)函數(shù),與平臺(tái)無(wú)關(guān),自身提供環(huán)境。
2.5 多線程
多線程執(zhí)行的高效性是Java成為最受歡迎的開(kāi)發(fā)語(yǔ)言的主要原因之一,即在一個(gè)程序中同時(shí)執(zhí)行多個(gè)功能,每個(gè)線程都是獨(dú)立的。線程就是一個(gè)程序(進(jìn)程)中最小的資源分配單位。例如,你在一個(gè)網(wǎng)頁(yè)搜索內(nèi)容的同時(shí),還可以打開(kāi)HTML訪問(wèn)另外的信息,而不必等待第一個(gè)網(wǎng)頁(yè)搜索結(jié)束再去訪問(wèn)別的網(wǎng)頁(yè),這就是多線程所能提供的便利性和高效性。Java編程語(yǔ)言的類庫(kù)中,有一個(gè)Thread類提供,包括四個(gè)搜索狀態(tài):開(kāi)始、運(yùn)行、停止和檢查,可以同時(shí)處理多個(gè)事務(wù),提高了程序效率。
2.6 穩(wěn)健性
Java與C++最大的不同就是,Java去除了C++中的指針,它消除了重寫內(nèi)存和破壞數(shù)據(jù)的可能性,這是一個(gè)非常有用的特性。對(duì)于其他語(yǔ)言來(lái)說(shuō),只有在執(zhí)行的時(shí)候才能夠檢測(cè)出來(lái)。此外,還有數(shù)組的邊界檢測(cè),這樣就很有效的防止了數(shù)據(jù)溢出。在C語(yǔ)言中,開(kāi)發(fā)人員往往需要指針來(lái)保存字符串、數(shù)組等。在Java語(yǔ)言中,不需要用指針來(lái)構(gòu)造字符串和數(shù)組,但是在某些必要情況下,它也可以實(shí)現(xiàn)例如鏈表這類的數(shù)據(jù)結(jié)構(gòu)。Java語(yǔ)言中的異常處理,也是很有特色的一個(gè)功能,通過(guò)catch語(yǔ)句或是try語(yǔ)句,編程人員可以很容易得知錯(cuò)誤的地方??偠灾?,Java除了某些編程方面的錯(cuò)誤外,是絕對(duì)安全的,使用Java來(lái)編寫軟件是非??煽康?。
2.7 動(dòng)態(tài)性
在C++語(yǔ)言中,每類中添加新成員或者新函數(shù)時(shí),必須要重新編譯一次他的子類,否則程序?qū)⒉荒芡ㄟ^(guò)編譯。而Java語(yǔ)言可以動(dòng)態(tài)導(dǎo)入所需要的所有類,C++語(yǔ)言中的面向?qū)ο缶幊叹蜔o(wú)法做到。Java語(yǔ)言中,由存儲(chǔ)器生成的對(duì)象不在編寫的時(shí)候決定,而是由解釋器在運(yùn)行過(guò)程中決定的,這樣就會(huì)運(yùn)行已經(jīng)被更新的類,并不會(huì)影響原來(lái)的代碼運(yùn)行。
Java語(yǔ)言自帶的類庫(kù)中,還可以不斷地添加新的方法,對(duì)客戶端不會(huì)產(chǎn)生影響。
2.8 高性能
Java語(yǔ)言是先編譯后翻譯的語(yǔ)言,這點(diǎn)上它不如C/C++這種全編譯性語(yǔ)言運(yùn)行速度快。但在某些情況下,這種性能還是很有必要的。開(kāi)發(fā)Java語(yǔ)言的開(kāi)發(fā)者編寫了及時(shí)編譯程序,Java可以直接在編譯過(guò)程中把代碼翻譯成機(jī)器指令,與C/C++翻譯代碼的速度幾乎沒(méi)有什么區(qū)別。
2.9 分布性
Java語(yǔ)言是一種分布式的語(yǔ)言,它適應(yīng)各種網(wǎng)絡(luò)連接。Java程序只需要編寫一次,就可以多次執(zhí)行。
3? Java程序設(shè)計(jì)語(yǔ)言在軟件開(kāi)發(fā)中的具體應(yīng)用
3.1 開(kāi)發(fā)Android應(yīng)用
Android手機(jī)應(yīng)用的開(kāi)發(fā)語(yǔ)言幾乎都是Java語(yǔ)言,例如QQ、微信。由于它的安全性,可以防止各種惡意代碼的攻擊,所以Java語(yǔ)言很適合開(kāi)發(fā)大型軟件。Java語(yǔ)言開(kāi)發(fā)的軟件可以跨平臺(tái)運(yùn)行。前文說(shuō)到過(guò),Java語(yǔ)言具有可移植性,在任何平臺(tái)、CPU和操作系統(tǒng)上都可以運(yùn)行,只要是裝有Java虛擬機(jī)的機(jī)器。所以,想要程序在任何一部手機(jī)上都可以運(yùn)行你的軟件,拿Java語(yǔ)言開(kāi)發(fā)Android軟件是最佳選擇。由于Java語(yǔ)言相對(duì)于C/C++語(yǔ)言來(lái)說(shuō),具有簡(jiǎn)單性,去除了C++中一些容易出錯(cuò)誤的部分,雖然有時(shí)候會(huì)導(dǎo)致程序的運(yùn)行效率不高,但是會(huì)讓開(kāi)發(fā)效率變得更高,更由于Java語(yǔ)言跟C++語(yǔ)言很相似,甚至于更簡(jiǎn)單,開(kāi)發(fā)人員很容易駕馭Java語(yǔ)言這門計(jì)算機(jī)語(yǔ)言,使精力放在研發(fā)上面。
3.2 嵌入式應(yīng)用
Java的很多優(yōu)點(diǎn)都使它在嵌入式領(lǐng)域上受到青睞,它在嵌入式應(yīng)用上有很大的發(fā)展空間。目前市面上很多嵌入系統(tǒng),都是由Java語(yǔ)言編寫的,例如為汽車、小型電子產(chǎn)品(手機(jī),MP3)、電信設(shè)計(jì)產(chǎn)品。在嵌入式領(lǐng)域上,Java較C/C++語(yǔ)言來(lái)說(shuō),更加具有優(yōu)越性。前文提到過(guò),Java語(yǔ)言具有非常高的安全性,它可以有效地防范各種病毒和惡意代碼的攻擊,有很多層次的安全保護(hù)措施,對(duì)于很多嵌入系統(tǒng),Java語(yǔ)言提供了可靠性。還有就是最重要的一點(diǎn),跨平臺(tái)性。Java語(yǔ)言的跨平臺(tái)性,可以適應(yīng)各種操作系統(tǒng)和各種硬件,只需要編寫一次,就可以多次使用,而C/C++在不同的操作系統(tǒng)或是CPU中,多次編寫才能運(yùn)行,有的操作系統(tǒng)甚至不支持C/C++語(yǔ)言。Java語(yǔ)言還可以適應(yīng)各種網(wǎng)絡(luò)應(yīng)用,極大的提高了開(kāi)發(fā)嵌入式系統(tǒng)的效率。Java語(yǔ)言的應(yīng)用范圍很廣,包括PersonalJava、Card Java等。