秦浪
摘要:JAVA是具有長(zhǎng)久發(fā)展時(shí)間的成熟編程語言,在當(dāng)今時(shí)代,JAVA編程語言發(fā)揮著至關(guān)重要的作用。為給廣大從業(yè)者提供可靠借鑒,該文主要分析JAVA編程語言的技術(shù)特征,并對(duì)JAVA編程語言的實(shí)際應(yīng)用進(jìn)行詳盡論述。
關(guān)鍵詞:JAVA編程語言;計(jì)算機(jī)軟件編程;軟件開發(fā)
中圖分類號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)02-0061-02
JAVA是目前常用的一種成熟編程語言,相較于C++等編程語言,JAVA有著諸多優(yōu)勢(shì)。如今,計(jì)算機(jī)軟件編程正逐步朝著多層級(jí)機(jī)構(gòu)所發(fā)展,B/S已經(jīng)成為業(yè)界主流,人們利用信息技術(shù)打破了時(shí)間、空間的界限,實(shí)現(xiàn)了高效且便捷的信息轉(zhuǎn)換。JAVA編程語言以其本身的技術(shù)優(yōu)勢(shì),讓計(jì)算機(jī)軟件的編寫更為方便、快捷,在近十幾年的發(fā)展歷程中,JAVA取代了諸多傳統(tǒng)編程技術(shù)。JAVA最主要的優(yōu)勢(shì)就是和平臺(tái)無關(guān),利用JAVA編譯的程序、軟件,安全性、可靠性有著較高的保障,并且JAVA還能夠面向?qū)ο髮?shí)現(xiàn)有效開發(fā)。如今,我們身處于信息時(shí)代,鑒于JAVA在當(dāng)今時(shí)代的重要性,必須要對(duì)JAVA的特點(diǎn)以及應(yīng)用進(jìn)行梳理、探究。
1 JAVA編程語言的特點(diǎn)
1.1 面向?qū)ο?/p>
所謂面向?qū)ο?,就是將某一個(gè)實(shí)體看作為一個(gè)對(duì)象,面向?qū)ο蟊旧硎且环N相對(duì)抽象的理念,現(xiàn)實(shí)世界模型的所有自然延伸都可看作為面向?qū)ο蟆,F(xiàn)實(shí)世界中各個(gè)對(duì)象之間傳遞消息,然后根據(jù)對(duì)象的特征將對(duì)象歸類為某一種事物,所有對(duì)象都是某一類事物的實(shí)例。C++等傳統(tǒng)的編程語言往往以“編譯過程”為中心,將具體的算法作為程序的驅(qū)動(dòng),面向?qū)ο蟮木幊陶Z言以“對(duì)象”為中心,將“消息的傳遞”作為驅(qū)動(dòng)。JAVA面向?qū)ο蟮奶匦?,展現(xiàn)出多態(tài)、封裝、繼承三個(gè)方面的概念,這也是JAVA編程語言安全、可靠的基礎(chǔ)。
現(xiàn)實(shí)世界中所有事物都有著獨(dú)特的行為模式以及屬性,將其直接反映到計(jì)算機(jī)程序上,屬性就可看作為對(duì)象特有的數(shù)據(jù),行為則是表現(xiàn)對(duì)象的具體方法。封裝具體是指將對(duì)象和方法集成為一個(gè)完整的系統(tǒng),從這個(gè)角度來看,面向?qū)ο笾械膶?duì)象是具體的封裝手段,對(duì)象是封裝手段的具體單位,JAVA語言的封裝性相對(duì)較強(qiáng),因JAVA本身并沒有全局的變量,在利用JAVA編程語言的過程中,絕大部分時(shí)候考慮的都是編程的對(duì)象,針對(duì)對(duì)象和對(duì)象之間的信息傳遞,JAVA語言也涵蓋了相應(yīng)的類型、方法。
多態(tài)就是指多元,指有多重表現(xiàn)方法,舉個(gè)例子,計(jì)算機(jī)中的堆??蓛?chǔ)存多重?cái)?shù)據(jù),如字符、浮點(diǎn)等,但是無論堆棧儲(chǔ)存的何種數(shù)據(jù),算法本身是不會(huì)發(fā)生變化的,而針對(duì)不同的數(shù)據(jù)類型,程序編譯人員無須再次進(jìn)行手動(dòng)選擇,只需要應(yīng)用統(tǒng)一的接口,然后就能夠?qū)崿F(xiàn)自動(dòng)化的選擇。
繼承是以“面向?qū)ο蟆睘榛A(chǔ)的特征,即“將一個(gè)對(duì)象的屬性或者方法繼承給另一個(gè)對(duì)象”,事實(shí)上,在應(yīng)用JAVA編程語言的過程中,許多對(duì)象都有著相應(yīng)的集成含義。舉個(gè)例子,如果將生活中的電燈看作為一個(gè)實(shí)體,那么“電燈”就能夠劃分為多個(gè)子實(shí)體,比如臺(tái)燈、路燈等等,這些不同的子實(shí)體本身有著相應(yīng)的特性,那么“電燈”就是“路燈、臺(tái)燈”的孩子,在JAVA編程語言中,提供了針對(duì)這些對(duì)象實(shí)體的“類別”,而子實(shí)體就可直接繼承“父”實(shí)體的特征以及方法。
1.2 平臺(tái)無關(guān)
平臺(tái)無關(guān)主要是指JAVA編程語言的通用性,利用JAVA編程語言,無須通過修改,編譯出的程序就可在不同的軟件平臺(tái)、硬件平臺(tái)上運(yùn)行,而平臺(tái)無關(guān)則體現(xiàn)出兩個(gè)方面的特征,一個(gè)是目標(biāo)代碼級(jí)別的特征;另一個(gè)是源代碼級(jí)別的特征。比如傳統(tǒng)的C語言和傳統(tǒng)的C++語言,他們?cè)谝欢ǔ潭壬暇涂稍创a級(jí)別平臺(tái)無關(guān),所以利用C++、C編譯出的程序無須重新編寫或者調(diào)整就能夠在不同的平臺(tái)上使用[1]。
JAVA編程語言主要依靠虛擬機(jī)來實(shí)現(xiàn)平臺(tái)無關(guān)性,JAVA虛擬機(jī)本身是一種抽象的程序,它是各種操作系統(tǒng)的附屬品,本身有著完善的虛擬機(jī)指令,并且JAVA虛擬機(jī)也有著寄存器、堆棧等。在JAVA虛擬機(jī)中有著專門用于解釋JAVA程序的解釋器,編程人員在利用JAVA編程語言編寫程序后,編譯器就會(huì)自動(dòng)將JAVA程序轉(zhuǎn)化為JAVA虛擬機(jī)的字節(jié)源代碼,只要設(shè)備配置有或者軟件配置有JAVA解釋器,那么程序就可在該設(shè)備上運(yùn)行,這種運(yùn)行方式無須考慮字節(jié)代碼的特異性。并且,JAVA編程語言是以IEEE標(biāo)準(zhǔn)為基礎(chǔ)的語言,通過JAVA虛擬機(jī)來確保數(shù)據(jù)種類的一致性,同時(shí)提高JAVA編程語言的實(shí)用性[2]。
JAVA編程語言的平臺(tái)無關(guān)性是JAVA編程語言如今能夠得到廣泛應(yīng)用的基礎(chǔ),首先JAVA編程語言無關(guān)性能夠讓編程人員通過一次開發(fā)完成多次運(yùn)行,大大減少了編程人員的工作量;其次JAVA編程語言的無關(guān)性本身符合當(dāng)代“網(wǎng)絡(luò)計(jì)算機(jī)”的發(fā)展軌跡,如果所有的應(yīng)用程序都需要用JAVA編程語言編寫,那么設(shè)備或者軟件平臺(tái)只需要有一個(gè)JAVA虛擬機(jī)就可完成所有以JAVA程序的運(yùn)行[3-5]。
1.3 可靠性和安全性
當(dāng)今社會(huì)是消費(fèi)社會(huì),無論何種軟件都是互聯(lián)網(wǎng)時(shí)代的重要商品,JAVA編程語言最初的設(shè)計(jì)目的,就是實(shí)現(xiàn)消費(fèi)類軟件的開發(fā),而消費(fèi)產(chǎn)品本身必須具有一定的安全性、可靠性這樣才能夠滿足使用者的需求。相較于C++、C語言,JAVA本身是一種“強(qiáng)類型”的語言,在編譯的過程中能夠直接發(fā)現(xiàn)方法調(diào)用錯(cuò)誤,這就提高了JAVA程序的可靠性。并且,JAVA編程語言并不支持指針,這就直接消除了非法訪問內(nèi)存的可能性,同時(shí)自動(dòng)單元避免了內(nèi)存分配問題、內(nèi)存丟失問題等。另外,JAVA虛擬機(jī)在運(yùn)行的過程中,解釋程序就可直接完成實(shí)時(shí)檢查,發(fā)現(xiàn)字符串以及數(shù)組越界的情況。
因JAVA目前主要用于各種程序開發(fā),其多數(shù)程序都涉及互聯(lián)網(wǎng)的使用,所以對(duì)安全性、可靠性的要求較高,JAVA本身有著相對(duì)完善的病毒預(yù)防機(jī)制,在字節(jié)經(jīng)過虛擬機(jī)后,必須要通過字節(jié)校驗(yàn)器的檢查,并確定字節(jié)在程序中的內(nèi)存布局,以避免出現(xiàn)程序干擾、程序破壞等問題。
2 JAVA編程語言的實(shí)際應(yīng)用
以某圖形編輯器的編譯為例,將Eclipse作為程序編譯的基礎(chǔ)平臺(tái),該平臺(tái)作為JAVA編程語言使用的基礎(chǔ)服務(wù)以及框架??傮w結(jié)構(gòu)分為代碼轉(zhuǎn)換、編譯器、圖形轉(zhuǎn)換三個(gè)部分構(gòu)成,圖形化的編程方法完全參考圖形編輯器提供的方法,后臺(tái)的模型負(fù)責(zé)儲(chǔ)存所有相關(guān)信息,代碼轉(zhuǎn)化器同時(shí)完成信息的轉(zhuǎn)化以及翻譯,保證程序符合JAVA的語言規(guī)范[6]。
2.1 圖形編程語言設(shè)計(jì)
圖形編程語言以“元建?!睓C(jī)制作為基礎(chǔ),在對(duì)JAVA編程語言進(jìn)行參考的基礎(chǔ)上來實(shí)現(xiàn)圖形編程語言設(shè)計(jì),主要目的是實(shí)現(xiàn)對(duì)抽象語法以及語義的描述,同時(shí)實(shí)現(xiàn)具體語法和抽象語法之間的區(qū)分,擴(kuò)充抽象語法需要考慮到具體的語法過程,并將具體的圖形符號(hào)反映出來。一般來說,元建模涵蓋了語言之間的構(gòu)造關(guān)系,如segment、if else之間有著聚類關(guān)聯(lián)關(guān)系,并對(duì)type、modifiner、ldentifier、loop等進(jìn)行定義。自然語言是元模型定義圖形語言的基礎(chǔ),并直接說明了元素直接的關(guān)系,本案例應(yīng)用的語句為if else,需要合理的定義相關(guān)屬性。
2.2 JAVA圖形編輯器設(shè)計(jì)
該圖形編輯器的基礎(chǔ)架構(gòu)為傳統(tǒng)的MVC。數(shù)據(jù)層、控制層、表現(xiàn)層之間相互獨(dú)立,并存在抽象化的對(duì)應(yīng)關(guān)系,針對(duì)應(yīng)用問題的核心數(shù)據(jù),在納入方法、行為、邏輯之后進(jìn)行封裝。圖形符號(hào)是圖形編程的基礎(chǔ),需要考慮到語言元模型中元素的轉(zhuǎn)化,比如尺寸、圖形組合、導(dǎo)航連接線等,if else則要表現(xiàn)相應(yīng)的賦值語句符號(hào)。
圖形編輯器的所有視圖圖形都需要有相應(yīng)的模型,以讓相應(yīng)的圖形代碼信息能夠得到有效歸類以及保存,編輯器的模型的創(chuàng)建需要考慮到元模型中基本元素的對(duì)象,同時(shí)對(duì)各個(gè)元素之間的關(guān)聯(lián)約束進(jìn)行編碼。在實(shí)際設(shè)計(jì)的過程中,需要對(duì)程序的運(yùn)行加入相對(duì)應(yīng)的監(jiān)聽、管理機(jī)制,保證在程序編譯的過程中,能夠根據(jù)JAVA編程的基本規(guī)則來做出相對(duì)應(yīng)的反應(yīng),同時(shí)將該反應(yīng)進(jìn)行實(shí)時(shí)反饋,監(jiān)聽器根據(jù)反饋再進(jìn)行實(shí)際動(dòng)作[7]。
控制需要考慮到模型和視圖之間的協(xié)調(diào),所有控制器都要有相應(yīng)的監(jiān)視器接口,并能夠在對(duì)象內(nèi)部實(shí)現(xiàn)監(jiān)聽駐留,如果模型數(shù)據(jù)發(fā)生變化后,控制器則要根據(jù)實(shí)際的變化類型來創(chuàng)建出新的視圖或者進(jìn)行調(diào)整。如,用戶在使用的過程中,確定了圖像的編譯,并對(duì)修改進(jìn)行了確定之后,那么就要對(duì)該變化進(jìn)行確定,控制器需要將字符串轉(zhuǎn)化為對(duì)應(yīng)的圖像。
2.3 代碼轉(zhuǎn)換
代碼轉(zhuǎn)換需要生成和JAVA編程規(guī)范一致的文本代碼,編譯部件需要以模板機(jī)制為基礎(chǔ)逐步完善翻譯功能,同時(shí)完成對(duì)內(nèi)容的詳細(xì)劃分,以讓程序的局部細(xì)節(jié)構(gòu)成一個(gè)相對(duì)完善的主體框架。在設(shè)計(jì)的過程中,需要考慮到不同元素的翻譯,在轉(zhuǎn)化完成后,元素所對(duì)應(yīng)的實(shí)例也需要轉(zhuǎn)化為相關(guān)的代碼字符串。
3 結(jié)束語
綜上所述,JAVA編程語言以其本身的成熟性、完善性、靈活性、平臺(tái)無關(guān)性、可靠性、安全性在業(yè)界得到了廣泛應(yīng)用,成為應(yīng)用程序編寫的首選語言。目前JAVA編程語言已經(jīng)成為Android應(yīng)用程序編譯的基礎(chǔ),同時(shí)也成為web程序編寫的主要選擇對(duì)象,廣大從業(yè)者切勿忽視JAVA編程語言的重要性,在實(shí)際工作中要對(duì)JAVA編程語言進(jìn)行詳盡的分析,并不斷解決目前因“解釋”導(dǎo)致的卡頓問題。
參考文獻(xiàn):
[1] 王侃.基于Java與Python的面向?qū)ο缶幊痰幕咎卣餮芯縖J].數(shù)碼世界,2019(8):42.
[2] 薛靜.計(jì)算機(jī)軟件開發(fā)中JAVA編程語言的應(yīng)用分析[J].湖北農(nóng)機(jī)化,2019(14):42.
[3] 盧凌.基于Java編程語言下計(jì)算機(jī)軟件開發(fā)技術(shù)的思考[J].數(shù)字技術(shù)與應(yīng)用,2018,36(12):137,139.
[4] 成孝俊.計(jì)算機(jī)軟件開發(fā)中JAVA編程語言的應(yīng)用分析與研究[J].數(shù)字技術(shù)與應(yīng)用,2017(10):166-168.
[5] 中國(guó)電子科技集團(tuán)公司第二十八研究所.基于C++與Java混合編程的分布式服務(wù)系統(tǒng):CN201610987580.7[P].2017.
[6] 魏翔.Java動(dòng)態(tài)類加載機(jī)制研究及實(shí)踐[J].電腦迷,2018(10):12.
[7] 周衛(wèi)星,左正康,王昌晶,等.泛型編程在面向?qū)ο笳Z言中的對(duì)比研究[J].江西師范大學(xué)學(xué)報(bào):自然科學(xué)版,2018,42(3):304-310.
【通聯(lián)編輯:唐一東】