 嵌入(ru)式比java難多少?
							時間:2020-05-15      來源:未(wei)知
							嵌入(ru)式比java難多少?
							時間:2020-05-15      來源:未(wei)知 
							嵌入式技術已經很多次的出現在我們生活中了,不光這樣,現在也有很多公司都開始招聘嵌入式開發技術崗位了,相對于java的話,大家還是比較熟悉的,不少人也會拿這兩樣最對比,下面一起來了解下嵌入式比java難多少吧。
	
1、Java語言與嵌入式
對于(yu)選用(yong)嵌入(ru)式編程語言,一般說,越是高(gao)級的語言,其(qi)(qi)編譯和運行庫(ku)施加的開銷越大,你的應用(yong)程序(xu)也越大,越慢。已經公認用(yong)匯編語言能寫出最小(xiao)最快的程序(xu),其(qi)(qi)次是用(yong)C或Forth,接下來較大的是C++或Basic,然后才(cai)是Java。因此一般來說,編程人(ren)員都會(hui)首(shou)選匯編和C,而然后才(cai)會(hui)考慮C++或Java。
但(dan)是(shi)嵌(qian)入(ru)式(shi)開發(fa)者為(wei)(wei)何要(yao)(yao)來關注Java呢?筆者以為(wei)(wei),隨著不(bu)斷增(zeng)長的(de)(de)市場需求,很多(duo)嵌(qian)入(ru)設備必須適應網上交流(liu)的(de)(de)需要(yao)(yao),為(wei)(wei)了(le)迎合此要(yao)(yao)求,考(kao)慮這(zhe)種(zhong)到(dao)開發(fa)Internet應用程序的(de)(de)便利,眾多(duo)開發(fa)者都發(fa)現使用這(zhe)種(zhong)語(yu)言(yan)是(shi)有意義的(de)(de)。另(ling)一個原因是(shi)隨著內存條及(ji)32位(wei)處(chu)理器價格的(de)(de)下(xia)降(jiang),最初(chu)在嵌(qian)入(ru)系統使用Java太昂貴的(de)(de)問題不(bu)再有了(le)。隨著使用Java的(de)(de)成本代(dai)價減少,它的(de)(de)很多(duo)優(you)點應當(dang)被考(kao)慮作為(wei)(wei)嵌(qian)入(ru)平臺。
2、Java對于嵌入式的優點分析
Java語言的(de)(de)(de)(de)優點在于:它當初就是由理解和信(xin)奉網(wang)絡計(ji)算(suan)夢想(xiang)的(de)(de)(de)(de)一個小巧而專注(zhu)的(de)(de)(de)(de)開(kai)發組設計(ji)的(de)(de)(de)(de),雖然該語言最初的(de)(de)(de)(de)實施方(fang)案有(you)點缺陷,有(you)許多后來(lai)已被解決了,但為了這(zhe)個夢想(xiang),他們很少在技術(shu)上妥協,結(jie)果誕生了一種(zhong)專為以相(xiang)互(hu)通訊為主要目的(de)(de)(de)(de)的(de)(de)(de)(de)設備而設計(ji)的(de)(de)(de)(de)語言。
有許多技(ji)術上的優點都可能(neng)會(hui)引導嵌(qian)入系統開發者選擇Java,以下就是這(zhe)些優點(其(qi)中有幾個也(ye)適(shi)用(yong)于(yu)通用(yong)編程)
A)與處理器無(wu)關
Java的(de)第一個優點就是與處(chu)理(li)器無關,這個優點似(si)乎與嵌入式系統沒什么相(xiang)干。傳統上,嵌入程序(xu)就是針對特定的(de)微處(chu)理(li)器設計并在其上運行的(de),而C語言程序(xu)的(de)可移植性則(ze)可通過(guo)編(bian)譯或(huo)交叉編(bian)譯來保(bao)障(zhang)。
B)面向對象(xiang)的編(bian)程
Java是一(yi)種純粹(cui)面向對象的(de)(de)(de)語言。所有代(dai)碼和數據(ju)(ju)都(dou)是某個類(lei)(lei)的(de)(de)(de)一(yi)部分(fen),沒(mei)有全局變量或是獨立于(yu)類(lei)(lei)存在(zai)的(de)(de)(de)代(dai)碼,一(yi)個對象是一(yi)個類(lei)(lei)的(de)(de)(de)實(shi)(shi)(shi)例(li),對象是通過調用操(cao)(cao)作(zuo)方(fang)(fang)法,或者(zhe)說(shuo)函(han)數來操(cao)(cao)作(zuo)的(de)(de)(de),而這些方(fang)(fang)法或函(han)數也是類(lei)(lei)的(de)(de)(de)一(yi)部分(fen),對象的(de)(de)(de)方(fang)(fang)法就對象的(de)(de)(de)數據(ju)(ju)進(jin)行(xing)操(cao)(cao)作(zuo)。Java類(lei)(lei)被組織成一(yi)個等級層(ceng)次,在(zai)層(ceng)次結構(gou)中,一(yi)個子類(lei)(lei)能(neng)(neng)夠(gou)繼承其超(chao)類(lei)(lei)的(de)(de)(de)行(xing)為,并可(ke)用子類(lei)(lei)所具備的(de)(de)(de)一(yi)些特有功(gong)能(neng)(neng)來擴展其超(chao)類(lei)(lei)的(de)(de)(de)功(gong)能(neng)(neng)。對象模型(xing)是你能(neng)(neng)定義對應真實(shi)(shi)(shi)事物的(de)(de)(de)數據(ju)(ju)結構(gou),使(shi)得程(cheng)序的(de)(de)(de)任(ren)務和任(ren)務如(ru)何實(shi)(shi)(shi)現者(zhe)二者(zhe)之(zhi)間的(de)(de)(de)轉換變得基(ji)本上透明。
C)安全和(he)安全操(cao)作
由于有了JVM,一(yi)(yi)個Java應用程序與操(cao)作(zuo)系統或(huo)硬件(jian)完(wan)全隔絕,因此計算機病毒或(huo)其它作(zuo)祟的(de)的(de)代(dai)碼就很難獲(huo)得對設備的(de)控制。虛擬機是主機設備和那些可能難以確(que)定其質量(liang)和可靠性的(de)軟件(jian)之(zhi)間的(de)一(yi)(yi)個保護層。
D)內存管理(li)
Java的內存(cun)管理遠(yuan)比(bi)其他(ta)語言簡(jian)單,因(yin)為(wei)它不使用(yong)指(zhi)針(zhen)。當對象被實例化(hua)時,內存(cun)被動態分配。正如我(wo)們前面(mian)分析的,對個別內存(cun)地址的訪問被Java的設計者視(shi)為(wei)一(yi)個對安全的潛(qian)在危(wei)險,因(yin)此,訪問也被禁止。而(er)(er)且,Sun的網絡模型已(yi)假定(ding)你也許不知(zhi)道目標處(chu)理器(qi),而(er)(er)引(yin)用(yong)專用(yong)內存(cun)地址變(bian)得沒(mei)有必要。去掉(diao)指(zhi)針(zhen)的結果不僅(jin)提高了(le)安全性,還簡(jian)化(hua)了(le)編(bian)程,錯誤也減(jian)少了(le)。
E)垃(la)圾收(shou)集(ji)
垃圾收集自動收集內存(cun)中(zhong)未引用的內存(cun),并(bing)將(jiang)其歸回空閑內存(cun)鏈表中(zhong)。JVM使(shi)用此功能(neng)將(jiang)不在使(shi)用的內存(cun)還給系(xi)統。
F)網(wang)絡
由(you)于今天的(de)(de)嵌入式(shi)系(xi)統通(tong)常都是網(wang)絡的(de)(de),采用(yong)(yong)內置(zhi)網(wang)絡支持的(de)(de)語(yu)言節約(yue)了在實現網(wang)絡協議和(he)(he)通(tong)信程序方面耗費的(de)(de)大量時間和(he)(he)努力。在Java中(zhong),網(wang)絡類包(bao)括TCP/IP流和(he)(he)使用(yong)(yong)TCP及(ji)UDP的(de)(de)數(shu)據(ju)報程序,用(yong)(yong)于HTTP和(he)(he)URL服務的(de)(de)操作(zuo)方法,以及(ji)錯誤檢查(cha)代碼和(he)(he)恢復功(gong)能。
G)動態配置
動(dong)(dong)態(tai)配(pei)置(zhi)(zhi)是指一系統啟動(dong)(dong)時的用(yong)戶制定(ding)配(pei)置(zhi)(zhi)或重(zhong)新配(pei)置(zhi)(zhi)。需載入特殊的硬件配(pei)置(zhi)(zhi)、網絡(luo)參數或在引導期間支持特定(ding)用(yong)途的一些實用(yong)程序的系統,常常使用(yong)動(dong)(dong)態(tai)配(pei)置(zhi)(zhi)。
H)異(yi)常處理
與許多操作系統和程(cheng)序不同,對嵌入(ru)系統而言,重新啟動通常是無法接(jie)受的,就像我們都(dou)不希望打電(dian)話或者(zhe)看(kan)電(dian)視時突然有(you)技術性(xing)的中斷(duan)一樣(yang)。這意味(wei)著實際上所有(you)嵌入(ru)式系統都(dou)必須足(zu)夠堅實以截(jie)取錯誤來防止它(ta)們使程(cheng)序或更糟的是使整個(ge)設備(bei)崩潰。
以上介紹的就是嵌入式比java難多少了,選擇嵌入式的話,自己就要多用心去準備了,不要最后浪費了時間還沒有學到嵌入式技術,也不要一心兩用,學著嵌入式還想著是不是應該選擇java,這樣就不對了。