嵌入式技術已經很多次的出現在我們生活中了,不光這樣,現在也有很多公司都開始招聘嵌入式開發技術崗位了,相對于java的話,大家還是比較熟悉的,不少人也會拿這兩樣最對比,下面一起來了解下嵌入式比java難多少吧。
1、Java語言與嵌入式
對于選用嵌入式編程語言,一般說,越是高級的語言,其編譯和運行庫施加的開銷越大,你的應用程序也越大,越慢。已經公認用匯編語言能寫出最小最快的程序,其次是用C或Forth,接下來較大的是C++或Basic,然后才是Java。因此一般來說,編程人員都會首選匯編和C,而然后才會考慮C++或Java。
但是嵌入式開發者為何要來關注Java呢?筆者以為,隨著不斷增長的市場需求,很多嵌入設備必須適應網上交流的需要,為了迎合此要求,考慮這種到開發Internet應用程序的便利,眾多開發者都發現使用這種語言是有意義的。另一個原因是隨著內存條及32位處理器價格的下降,最初在嵌入系統使用Java太昂貴的問題不再有了。隨著使用Java的成本代價減少,它的很多優點應當被考慮作為嵌入平臺。
2、Java對于嵌入式的優點分析
Java語言的優點在于:它當初就是由理解和信奉網絡計算夢想的一個小巧而專注的開發組設計的,雖然該語言最初的實施方案有點缺陷,有許多后來已被解決了,但為了這個夢想,他們很少在技術上妥協,結果誕生了一種專為以相互通訊為主要目的的設備而設計的語言。
有許多技術上的優點都可能會引導嵌入系統開發者選擇Java,以下就是這些優點(其中有幾個也適用于通用編程)
A)與處理器無關
Java的第一個優點就是與處理器無關,這個優點似乎與嵌入式系統沒什么相干。傳統上,嵌入程序就是針對特定的微處理器設計并在其上運行的,而C語言程序的可移植性則可通過編譯或交叉編譯來保障。
B)面向對象的編程
Java是一種純粹面向對象的語言。所有代碼和數據都是某個類的一部分,沒有全局變量或是獨立于類存在的代碼,一個對象是一個類的實例,對象是通過調用操作方法,或者說函數來操作的,而這些方法或函數也是類的一部分,對象的方法就對象的數據進行操作。Java類被組織成一個等級層次,在層次結構中,一個子類能夠繼承其超類的行為,并可用子類所具備的一些特有功能來擴展其超類的功能。對象模型是你能定義對應真實事物的數據結構,使得程序的任務和任務如何實現者二者之間的轉換變得基本上透明。
C)安全和安全操作
由于有了JVM,一個Java應用程序與操作系統或硬件完全隔絕,因此計算機病毒或其它作祟的的代碼就很難獲得對設備的控制。虛擬機是主機設備和那些可能難以確定其質量和可靠性的軟件之間的一個保護層。
D)內存管理
Java的內存管理遠比其他語言簡單,因為它不使用指針。當對象被實例化時,內存被動態分配。正如我們前面分析的,對個別內存地址的訪問被Java的設計者視為一個對安全的潛在危險,因此,訪問也被禁止。而且,Sun的網絡模型已假定你也許不知道目標處理器,而引用專用內存地址變得沒有必要。去掉指針的結果不僅提高了安全性,還簡化了編程,錯誤也減少了。
E)垃圾收集
垃圾收集自動收集內存中未引用的內存,并將其歸回空閑內存鏈表中。JVM使用此功能將不在使用的內存還給系統。
F)網絡
由于今天的嵌入式系統通常都是網絡的,采用內置網絡支持的語言節約了在實現網絡協議和通信程序方面耗費的大量時間和努力。在Java中,網絡類包括TCP/IP流和使用TCP及UDP的數據報程序,用于HTTP和URL服務的操作方法,以及錯誤檢查代碼和恢復功能。
G)動態配置
動態配置是指一系統啟動時的用戶制定配置或重新配置。需載入特殊的硬件配置、網絡參數或在引導期間支持特定用途的一些實用程序的系統,常常使用動態配置。
H)異常處理
與許多操作系統和程序不同,對嵌入系統而言,重新啟動通常是無法接受的,就像我們都不希望打電話或者看電視時突然有技術性的中斷一樣。這意味著實際上所有嵌入式系統都必須足夠堅實以截取錯誤來防止它們使程序或更糟的是使整個設備崩潰。
以上介紹的就是嵌入式比java難多少了,選擇嵌入式的話,自己就要多用心去準備了,不要最后浪費了時間還沒有學到嵌入式技術,也不要一心兩用,學著嵌入式還想著是不是應該選擇java,這樣就不對了。