Java編程的優點

admin
admin
admin
131
文章
0
評論
2021年7月22日15:55:50 評論 26,329 2644字閱(yue)讀8分48秒(miao)

什么是Java

Java是門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。
Java具有簡單性(xing)、面向對象(xiang)、分(fen)布(bu)式、健壯性(xing)、安全(quan)性(xing)、平(ping)臺(tai)獨立(li)與可(ke)移植性(xing)、多線程(cheng)(cheng)(cheng)、動態性(xing)等特(te)點(dian) 。Java可(ke)以編寫桌面應(ying)用程(cheng)(cheng)(cheng)序(xu)(xu)、Web應(ying)用程(cheng)(cheng)(cheng)序(xu)(xu)、分(fen)布(bu)式系(xi)統(tong)和嵌入式系(xi)統(tong)應(ying)用程(cheng)(cheng)(cheng)序(xu)(xu)等。

Java的優點

1.簡潔有效

Java語言是種相當(dang)簡潔的“面(mian)向對象”程序設(she)計語言。Java語言省略了C++語言中所有(you)的難以理(li)解、容(rong)易混淆的特性(xing),例(li)如頭文件、指針、結構、單元、運算符重載、虛擬基(ji)礎類等。它更加嚴謹、簡潔。

2.高可移植性

對(dui)于(yu)個(ge)(ge)程(cheng)序員而言(yan),寫出來(lai)的(de)(de)程(cheng)序如果不(bu)需修(xiu)改就(jiu)(jiu)能夠同時在Windows、MacOS、LINUX等(deng)平(ping)臺(tai)上運(yun)行(xing),簡直就(jiu)(jiu)是美夢成真的(de)(de)好(hao)事(shi)!而Java語(yu)言(yan)就(jiu)(jiu)讓(rang)這(zhe)個(ge)(ge)原本遙不(bu)可(ke)及的(de)(de)事(shi)離我們越來(lai)越近。使用Java語(yu)言(yan)編寫的(de)(de)程(cheng)序,只要做較少(shao)的(de)(de)修(xiu)改,甚(shen)至(zhi)有時根(gen)本不(bu)需修(xiu)改就(jiu)(jiu)可(ke)以在不(bu)同平(ping)臺(tai)上運(yun)行(xing)了,Java絕對(dui)是跨平(ping)臺(tai)的(de)(de)門(men)編程(cheng)語(yu)言(yan)。

舉個(ge)例(li)子,不(bu)同平(ping)臺(tai)(tai)上(shang)對數(shu)據類型的(de)(de)(de)(de)大小有不(bu)同的(de)(de)(de)(de)規(gui)定。在(zai)有的(de)(de)(de)(de)平(ping)臺(tai)(tai)上(shang),整(zheng)(zheng)型(int)是(shi)用(yong)(yong)個(ge)16位(wei)(wei)二(er)進(jin)制(zhi)數(shu)表(biao)示(shi)(shi),而(er)有的(de)(de)(de)(de)平(ping)臺(tai)(tai)上(shang)則是(shi)使用(yong)(yong)個(ge)32位(wei)(wei)二(er)進(jin)制(zhi)數(shu)表(biao)示(shi)(shi)的(de)(de)(de)(de)。C/C++語言并沒有屏蔽掉這(zhe)個(ge)由不(bu)同平(ping)臺(tai)(tai)造成的(de)(de)(de)(de)不(bu)同。這(zhe)樣如(ru)果在(zai)個(ge)使用(yong)(yong)16位(wei)(wei)二(er)進(jin)制(zhi)數(shu)表(biao)示(shi)(shi)整(zheng)(zheng)型的(de)(de)(de)(de)平(ping)臺(tai)(tai)上(shang)開發(fa)的(de)(de)(de)(de)C語言源(yuan)程(cheng)序,要(yao)在(zai)個(ge)使用(yong)(yong)32位(wei)(wei)二(er)進(jin)制(zhi)數(shu)表(biao)示(shi)(shi)整(zheng)(zheng)型的(de)(de)(de)(de)平(ping)臺(tai)(tai)上(shang)運(yun)行,簡直就是(shi)噩耗。

而(er)在Java語言中(zhong),就屏蔽掉了(le)這(zhe)種由平(ping)臺(tai)造成(cheng)的(de)(de)不(bu)同。Java中(zhong)的(de)(de)整型數(shu)(shu)是定是由32位(wei)二(er)進(jin)制(zhi)表示的(de)(de),Java虛(xu)擬機(ji)將這(zhe)個差別消化了(le)。當(dang)我(wo)們想將個使(shi)用16位(wei)二(er)進(jin)制(zhi)數(shu)(shu)表示整型的(de)(de)平(ping)臺(tai)上(shang)開發的(de)(de)Java語言源程序(xu),移植到(dao)個使(shi)用32位(wei)二(er)進(jin)制(zhi)數(shu)(shu)表示整型的(de)(de)平(ping)臺(tai)上(shang)運行,就不(bu)用修改(gai)了(le)。

3.“面向對象”

可以這么說,“面向對象(xiang)”是軟(ruan)件(jian)工(gong)程學的(de)(de)(de)次革命,大(da)(da)大(da)(da)提升了人類的(de)(de)(de)軟(ruan)件(jian)開(kai)發能力,是個偉大(da)(da)的(de)(de)(de)進步,是軟(ruan)件(jian)發展的(de)(de)(de)個重(zhong)大(da)(da)的(de)(de)(de)理程碑。

在過去(qu)的30年間,“面(mian)向(xiang)對(dui)(dui)象”有了(le)長足的發展(zhan),充(chong)分(fen)體現(xian)了(le)其價值(zhi),到現(xian)在已經形成了(le)“面(mian)向(xiang)對(dui)(dui)象的系統分(fen)析”、“面(mian)向(xiang)對(dui)(dui)象的系統設(she)計”、“面(mian)向(xiang)對(dui)(dui)象的程序設(she)計”個體系。所以做為個現(xian)代(dai)編程語(yu)言(yan)(yan),是不(bu)能夠偏離這(zhe)方向(xiang)的,Java語(yu)言(yan)(yan)也(ye)不(bu)例外。

4.解釋型

解釋型(xing)語(yu)言效(xiao)率低,速(su)度(du)慢;編譯型(xing)語(yu)言效(xiao)率高,速(su)度(du)快。

Java語言是(shi)種(zhong)解釋型語言。對,沒看錯,它是(shi)種(zhong)解釋型語言,也就是(shi)說,相對于C/C++語言來(lai)說,Java語言寫出來(lai)的(de)程序效(xiao)率低,執行(xing)速度慢。但它正是(shi)通過在(zai)不同平臺上運(yun)(yun)行(xing)Java解釋器,對Java代碼進行(xing)解釋,來(lai)實(shi)現“次編寫,到(dao)(dao)處運(yun)(yun)行(xing)”的(de)宏偉(wei)目(mu)(mu)標(biao)的(de)。為了(le)達到(dao)(dao)目(mu)(mu)標(biao),犧牲效(xiao)率還是(shi)值得的(de),再說,現在(zai)的(de)計(ji)算(suan)機技術日新月異,運(yun)(yun)算(suan)速度也越來(lai)越快,用戶(hu)不會感到(dao)(dao)太慢的(de)。

5.適合分布式計算

Java語言(yan)具(ju)有強大的(de)(de)、易(yi)于使(shi)用的(de)(de)連網(wang)能力,非常(chang)適合開發分布式計算的(de)(de)程(cheng)序。Java應用程(cheng)序可以象訪問(wen)本地文件系(xi)統(tong)那(nei)樣通過(guo)URL訪問(wen)遠程(cheng)對象。

使(shi)(shi)用(yong)(yong)Java語(yu)言(yan)(yan)編寫(xie)Socket通信程(cheng)序十(shi)分簡(jian)單,使(shi)(shi)用(yong)(yong)它(ta)(ta)比(bi)使(shi)(shi)用(yong)(yong)任(ren)何其它(ta)(ta)語(yu)言(yan)(yan)都簡(jian)單。而且它(ta)(ta)還十(shi)分適合于開發公共網關(guan)接口(CGI)腳本的(de)開發,另(ling)外(wai)還可以(yi)使(shi)(shi)用(yong)(yong)Java小應用(yong)(yong)程(cheng)序(Applet)、Java服(fu)務器頁面(Java Server Page,簡(jian)稱(cheng)JSP)、Servlet等等手(shou)段來構建更豐富的(de)網頁。

6.擁有較好的性能

正如(ru)前面說到(dao),由于(yu)Java是種解釋(shi)型語言,所以它的執(zhi)行效率相對就會慢些,但由于(yu)Java語言采用了兩(liang)種手段,使得其性(xing)能還是不錯的。

1) Java語(yu)言源程序編寫完成后(hou),先使用Java偽編譯(yi)(yi)器進行偽編譯(yi)(yi),將其轉(zhuan)換為中間碼(也(ye)稱(cheng)為字節碼),再解釋;

2) 提供了種“準實時”(Just-in-Time,JIT)編(bian)譯器(qi)(qi),在(zai)需(xu)要更快(kuai)(kuai)的(de)速度時,可以(yi)使用JIT編(bian)譯器(qi)(qi)將(jiang)字節碼轉換成機(ji)器(qi)(qi)碼,然后將(jiang)其(qi)緩(huan)沖下來(lai),這樣(yang)速度就(jiu)會更快(kuai)(kuai)。

7.健壯(zhuang)、防(fang)患于未然

Java語言在(zai)(zai)偽編譯(yi)時,做(zuo)了(le)許(xu)多(duo)早(zao)期潛(qian)在(zai)(zai)問題的(de)(de)檢查(cha),并且(qie)在(zai)(zai)運行時來做(zuo)了(le)許(xu)多(duo)相應的(de)(de)檢查(cha),可以說是(shi)嚴格的(de)(de)種(zhong)“編譯(yi)器(qi)”。它的(de)(de)這(zhe)種(zhong)“防患于未然”的(de)(de)手(shou)段將(jiang)許(xu)多(duo)程序中的(de)(de)錯誤扼(e)殺在(zai)(zai)搖藍之中。經常有許(xu)多(duo)在(zai)(zai)其(qi)它語言中必須通(tong)過(guo)運行才會暴露(lu)出來的(de)(de)錯誤,在(zai)(zai)編譯(yi)階(jie)段就被(bei)發(fa)現了(le)。另外,在(zai)(zai)Java語言中還提供了(le)許(xu)多(duo)保證程序穩(wen)定、健(jian)(jian)壯的(de)(de)特性(xing),有效地減少了(le)錯誤,這(zhe)樣使得Java應用(yong)程序更(geng)加健(jian)(jian)壯。

8.具有多線程處理能(neng)力

線(xian)(xian)(xian)程(cheng),是種輕量級進程(cheng),是現代(dai)程(cheng)序設計中必不可(ke)少的種特(te)性。多線(xian)(xian)(xian)程(cheng)處(chu)理能(neng)(neng)力(li)使得程(cheng)序能(neng)(neng)夠具(ju)有更好的交互性、實(shi)時性。Java在(zai)多線(xian)(xian)(xian)程(cheng)處(chu)理方(fang)面性能(neng)(neng)超(chao)群,具(ju)有讓你驚(jing)喜的強(qiang)大功能(neng)(neng),而且在(zai)Java語(yu)言中進行多線(xian)(xian)(xian)程(cheng)處(chu)理很簡(jian)單。

9.具有較(jiao)高的安(an)全性

由于Java語言(yan)在(zai)(zai)設計時,在(zai)(zai)安(an)(an)全(quan)(quan)(quan)性方面考慮(lv)很(hen)仔細,做了許多探究,使得Java語言(yan)成為目(mu)前安(an)(an)全(quan)(quan)(quan)的(de)種程序設計語言(yan)。盡管(guan)Sun公(gong)(gong)司曾經許諾(nuo)過(guo)(guo):“通過(guo)(guo)Java可以(yi)輕(qing)松(song)構建出防病毒、防黑客(ke)的(de)系(xi)(xi)統(tong)”,但“世界(jie)上沒有(you)絕對的(de)安(an)(an)全(quan)(quan)(quan)”這真理是不(bu)會(hui)因為某人的(de)許諾(nuo)而(er)失靈驗(yan)的(de)。就在(zai)(zai)JDK (Java Development Kit)1.0發(fa)布不(bu)久后,美國Princeton(普林斯(si)頓)大(da)學的(de)組安(an)(an)全(quan)(quan)(quan)專發(fa)現了Java 1.0安(an)(an)全(quan)(quan)(quan)特性中的(de)第(di)例錯誤。從此,Java安(an)(an)全(quan)(quan)(quan)方面的(de)問(wen)題開始被關注。不(bu)過(guo)(guo)至(zhi)今所發(fa)現的(de)安(an)(an)全(quan)(quan)(quan)隱(yin)(yin)患(huan)都很(hen)微(wei)不(bu)足(zu)道,而(er)且Java開發(fa)組還(huan)宣稱,他們(men)對系(xi)(xi)統(tong)安(an)(an)全(quan)(quan)(quan)方面的(de)Bugs非常重(zhong)視,會(hui)對這些被發(fa)現的(de)進(jin)行立即修(xiu)復。而(er)且由于Sun公(gong)(gong)司開放(fang)了Java解釋器的(de)細節,所以(yi)有(you)助于通過(guo)(guo)各界(jie)力量,共同發(fa)現、防范、制止這些安(an)(an)全(quan)(quan)(quan)隱(yin)(yin)患(huan)。

10.是種動態語言

Java是種動態的(de)語言,這表(biao)示在(zai)以下兩個方面(mian):

1) 在Java語言中,可以簡單、直觀地(di)查詢運行時信息;

2) 可以將新代碼加入到個(ge)正在(zai)運行的程(cheng)序中去。

11.中性的(de)對象語言

“Java編(bian)譯器生成(cheng)的(de)(de)(de)是種(zhong)中(zhong)(zhong)性的(de)(de)(de)對象文件格式。”也就(jiu)是說(shuo),Java編(bian)譯器通(tong)過偽編(bian)譯后,將(jiang)生成(cheng)個與任何計(ji)算機(ji)體系統無關的(de)(de)(de)“中(zhong)(zhong)性”的(de)(de)(de)字節(jie)碼(ma)。這(zhe)(zhe)(zhe)種(zhong)中(zhong)(zhong)性結構其實并不是Java首創的(de)(de)(de),在(zai)Java出現之(zhi)(zhi)前UCSD Pascal系統就(jiu)已在(zai)種(zhong)商業產品(pin)中(zhong)(zhong)做到這(zhe)(zhe)(zhe)點,另外(wai)在(zai)UCSD Pascal之(zhi)(zhi)前還(huan)有這(zhe)(zhe)(zhe)種(zhong)方(fang)式的(de)(de)(de)先例(li),那就(jiu)是Niklaus Wirth實現的(de)(de)(de)Pascal語言中(zhong)(zhong)就(jiu)采用(yong)(yong)了這(zhe)(zhe)(zhe)種(zhong)降(jiang)低(di)些性能,換取(qu)更好的(de)(de)(de)可移植(zhi)性和通(tong)用(yong)(yong)性的(de)(de)(de)方(fang)法。Java的(de)(de)(de)這(zhe)(zhe)(zhe)種(zhong)字節(jie)碼(ma)經過了許多精心的(de)(de)(de)設計(ji),使得其能夠很好地兼容于(yu)當今大多數(shu)流(liu)行的(de)(de)(de)計(ji)算機(ji)體系統,可以(yi)在(zai)任何機(ji)器上易于(yu)解釋(shi),易于(yu)動態翻譯成(cheng)為機(ji)器代碼(ma)。

繼續閱讀
admin
什么是小程序 軟件開發

什么是小程序

? ? ? 小程序是以微信端為載體進行的產品依托平臺。在微信小程序的開發文檔里有很多詳細的描述,包括基本的小程序標簽或者函數定義,基本的API接口介紹,每期的迭代更新等。在進行大致的了解之后根據開發文...
什么是軟件開發 軟件開發

什么是軟件開發

軟件開發的內容是:需求、設計、編程和測試! 需求:不僅僅是用戶需求,應該是開發中遇到的所有的需求。比如,你首先要知道做這個項目是為了解決什么問題;測試案例中應該輸入什么數據……為了清楚地知道這些需求,...
AI智能圖像識別 軟件開發

AI智能圖像識別

圖像識別是計算機視覺的機制之,而計算機視覺是人工智能的個分支。圖像識別應用廣泛,在遙感、通訊、公安刑偵等領域均有應用 近年來,以深度學習為代表的人工智能技術高速蓬勃發展,新算法層出不窮,圖像識別、自然...
設備遠程控制 軟件開發

設備遠程控制

隨著工業物聯網的快速發展和互聯網的快速應用,遠程控制器在工業中的應用越來越多。隨著工業設備越來越依賴遠程控制器,使用編程軟件對控制器進行遠程編程和調試,對PLC遠程控制的需求越來越大。通過無線網絡實時...
匿名

發表(biao)評論

匿名網友 填寫(xie)信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: