- 相關推薦
Java用于嵌入式系統的局限
java語言的諸多優點在某些情況下恰恰可能成為其不利于在嵌入式系統中得以廣泛應用的絆腳石。yjbys小編下面為你整理了關于Java用于嵌入式系統的局限,希望對你有所幫助。
局限1:性能較低
由于解釋Java字節碼比相當的C或C++寫的程序運行起來要慢5到10倍,對一些并非受制于CPU的嵌入系統來說,這一性能缺點不是問題,但是更經常的較慢的速度會導致無法接受的應答時間。
解決方案
有幾種可能的解決方案可緩解速度慢的問題。
使用更快、更強大的處理器,使系統響應時間縮小到可以接受的范圍。不過這個方法將增加每個系統的成本。
使用母語Java編譯器來獲得比較好的性能。但這樣做,就放棄了與Java平臺無關的優點,好在大多數嵌入系統都只在一種平臺上運行。
在系統上并入一個JIT編譯器,這樣Java類裝入時就被編譯。不過,如果為接納JIT編譯器而不得不增加額外的內存,這個方法也會增加系統成本。另外,若系統各部分是按需求逐漸添加,則應該控制程序裝入的時機,以使在裝入類進行編譯時產生的暫停不會影響系統的響應時間。
局限2:垃圾收集的系統開銷過大
Java中的自動內存分配和垃圾收集性能是很實惠的,但是,從實時系統的角度來看,它的問題恰好就在于它是自動的。當垃圾收集進行時,開發者對系統的控制就受限了。因為,垃圾收集運行時,它凍結了系統其余部分的處理。這是因為它必須要在內存中移動對象,并必須在程序再次運行前,更新所有引用(指向)那些對象的程序變量。垃圾收集需要凍結處理的時間,具體取決于內存量和處理器的速度。很顯然,這對硬實時系統是無法接受的,甚至極端時對軟實時系統也是成問題的。
解決方案
垃圾收集以三種方式開啟。首先JVM有一個后臺垃圾收集線程,此線程傾向于在它一看見系統有空閑就開始垃圾收集,若有事件想要喚醒另一個線程,后臺垃圾收集就會被該線程占先,但它不會立刻被占先,它得更新那些已被移動的對象的所有引用后,才能讓一個線程運行。其次,若JVM沒找到足夠內存來滿足某個內存分配請求,它將啟動一個不會被占先的垃圾收集,在該操作完成之前,系統的其余部分被禁止。最后,一個應用程序能通過調用Systev.gc()方法來啟動垃圾收集。所以,如果知道系統暫時不會執行任何時序上關鍵的任務,就可以啟動垃圾收集,避免稍后在更關鍵時段進行收集。
局限3:JVM的內存開銷過大
前面我們也論述了許多 JVM的內置特點,比如圖形和網絡,它們使得Java程序更快上市。所有這些特點的負面是JVM的內存開銷。因為JVM是一個整塊(要達到Java的可移植的目的,必須完整的采納),JVM的內存占用量不能減少,F在的JVM最少需要2MB以上的內存。
解決方案
如果Java程序也在使用一些消耗內存的功能,由于一個JVM中有那么多的功能,各個Java應用程序就能寫得小一點。如果建立的是一個從網絡上動態下載并運行多個程序的系統,那么這將是個很大的優點。但Java仍然不具備可配置性和可伸縮性。
局限4:缺乏直接硬件接口能力
Java缺乏直接同硬件接口的能力。JVM僅僅是一個虛擬的機器,一個對硬件的軟件抽象,虛擬機控制與實際硬件的接口,而我們只能和虛擬機打交道。
解決方案
但這并非是無法逾越的限制,很多C程序使用內嵌匯編來規避性能上的瓶頸,所以Java程序也能使用C來獲得對硬件的直接訪問。
讓Java和C一起工作有兩種方式。首先,可以使用本地方式,它們是用C/C++或另一種語言寫的,但當調用時,則裝入與JVM同樣的內存空間,運行于同樣的環境。因為它們被編譯成機器碼,本地方式運行更快并能直接訪問硬件。本地過程與Java代碼之間通過套接來彼此交流,就像網絡中通信端點使用的套接一樣。不過在選擇了混合語言方法后,Java的與平臺無關和安全特點就沒有了。
另外,可以考慮將前面提到的Java處理器作為軟件JVM的解釋器部分作為一種硬件實現方案。Java程序能在這些處理器上直接運行并操縱硬件,要注意的是必需加一些特殊目的的指令給這種語言才能直接與處理器一起工作。
局限5:語言尚不夠成熟
從標準的程序設計語言角度來看,Java還很年輕,也很粗糙。如果Java不是由一個小組開發的,也許某些錯誤和疏忽已經被發現和解決了。在Java亮相以后,它立即被用于比原來預期更多的地方。這一切都意味著Java最初的構思和實現,雖然堅實和有用,但在安全、大小和性能幾方面仍感欠缺。
在其進一步發展中,Sun公司分了三個步驟來促進Java成為一種通用語言和計算機平臺。首先,用Java編程實現現存的商業和企業的一些功能活動,諸如電子郵件、日歷和字處理程序。其次,把Java提供給企業,使它成為一種編寫內部應用程序的方法。最后一步,是為傳統嵌入式設備應用,比如為移動電話、機頂盒以及打印機定義Java API以及語言功能。
由此可見,Java的嵌入式應用是排在Sun公司日程的最后的,Sun公司在繼續為這些用途發展此語言,但對這方面的發展次于桌面及企業用途。按Sun公司的優先順序,很可能還要過一段時間才能解決嵌入式應用中涉及到的一些問題。在此之前,嵌入式系統的編程人員可能不得不迂回、妥協以及使用第三方解決方案。
Java開發的編程工具也仍在發展之中。有幾個廠家提供編譯器和開發工具,如Symantec、Microsoft以及Sun公司。Sun不再是JVM和JIT的惟一供應商,其他幾個供應商的產品也很有競爭力。Parasoft公司的Jtest軟件自動為Java模塊生成檢測案例,而Numega公司的Jcheck為JVM中的程序行為提供一定的可見性。不過兩者都只能處理調試程序中的一小部分,而且都是針對桌面系統開發設計的,雖然它們也能用于嵌入開發過程。
目前Java仍然沒有交叉調試解決方案,即那種傳統上被嵌入系統開發者用來處理目標平臺上程序的方案,所以很可能必須用C/C++來寫程序中針對硬件的部分。不管怎樣,開發者最好用一個C/C++交互調試器來調試那些代碼,并在目標系統上用彈出對話框,保持記錄文件,或其他類技巧來調試Java.
java專業就業方向
java是一種簡單的,面向對象的,分布式的,說明型的,健壯安全的,結構中立的,可移植的,性能優異、多線程的動態語言。以下java是專業就業方向,歡迎閱覽!
Java分為三個體系JavaSE(Java2 Platform Standard Edition,java平臺標準版),JavaEE(Java 2 Platform,Enterprise Edition,java平臺企業版),JavaME(Java 2 Platform Micro Edition,java平臺微型版)。所以一般JAVA培訓也分為J2SE,J2EE,J2ME培訓,各個體系的方向有所不同,JAVA培訓的內容也有所不同。
通過JAVA培訓,學員可以系統把握面向對象編程語言JAVA的核心語法,能夠理解J2SE、J2ME、J2EE三種體系架構的理論思想和架構內容,把握JAVA程序設計的主要模式和核心思想,熟練把握基于JAVA語言的編程技巧和編程工具,能夠獨立完成基于JAVA的客戶端和服務器端應用程序的開發、調試、部署和執行。一般Java培訓包括以下內容:HTML/XML語言、 數據庫技術、Java程序設計、 數據結構與算法、Java設計模式、J2EE設計和應用、Eclipse/CVS/OpenSource. 軟件測試/安全性編碼技術、UML設計、UNIX. 項目實戰。
JAVA就業前景
JAVA人才社會需求量大,根據IDC的統計數字,在所有軟件開發類人才的需求中,對JAVA工程師的需求達倒全部需求量的60%~70%。同時,JAVA工程師薪水相對較高。通常來說,具有3~5年開發經驗的工程師,擁有年薪10萬元是很正常的一個薪酬水平。80%學員畢業后年薪都超過了5萬元。Java平臺以其移動性、安全性和開放性受倒追捧。
java專業就業方向
1 可視化編程
掌握程序設計方法及可視化技術,精通一種可視化平臺及其軟件開發技術。獲取Delphi程序員系列、Java初級或VB開發能手認證。
就業方向:企業、政府、社區、各類學校等可視化編程程序員。
2 WEB應用程序設計
具有美工基礎和網頁動畫設計能力,掌握交互式網頁程序的設計技術,能進行網站建設和維護。獲取Macromedia多媒體互動設計師或Delphi初級程序員或Delphi快速網絡開發工程師認證。
就業方向:企業、政府、社區、各類學校等WEB應用程序員。
3 軟件測試
掌握軟件測試的基本原理、方法和組織管理,精通軟件測試工具。獲取ATA軟件測試工程師或Delphi初級程序員或Java初級程序員認證。
就業方向:企業、政府、社區、各類學校等軟件測試員。
4 數據庫管理
能應用關系范式進行數據庫設計,精通SQL語言,勝任數據庫服務器管理與應用工作。獲取Oracle數據庫管理或SQL Server數據庫應用或Windows XP應用認證。
就業方向:企業、政府、社區、各類學校等部門的中、大型數據庫管理員。
5 圖形圖像制作
精通國際上流行的圖形/圖像制作工具(如CorelDraw、Photoshop、Pagemaker等)。獲取平面設計師相關的認證。
就業方向:廣告制作公司、建筑設計公司、包裝裝璜設計公司、居室裝修公司、出版印刷
公司。
6 網絡構建技術
熟悉網絡結構和組網方式,掌握建網方法,能利用工具分析和排除常見網絡故障。獲取Cisco路由配置或華為網絡工程或AMP應用工程師認證。
就業方向:企業、政府、社區、各類學校等網絡構建工程師。
7 網絡系統管理
掌握網絡系統管理的基本知識與應用技能,能進行網絡系統的安全設置。獲取Window2000 Server或TurboLinux TLCE或Cisco路由配置專家認證。
就業方向:企業、政府、社區、各類學校等網絡系統管理員。
8 多媒體制作
具有多媒體程序設計與多媒體制作策劃的能力;菊莆彰嫦驅ο蟪绦蛟O計與建模、造型設計、場景設計、分鏡頭原理等技能。獲取多媒體設計師相關的認證。
就業方向:多媒體設計與制作公司、動畫美術制作出版公司、廣告制作公司。
【Java用于嵌入式系統的局限】相關文章:
嵌入式系統組成03-09
嵌入式系統介紹01-13
嵌入式系統現狀發展03-09
嵌入式系統歷史發展01-13
嵌入式系統開發特點03-20
嵌入式系統開發流程01-29
嵌入式系統應用領域01-13
嵌入式系統的應用領域01-12
嵌入式系統的基本概念01-12