激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

Java用于嵌入式系統的優(yōu)點(diǎn)

時(shí)間:2024-09-01 13:50:21 嵌入式培訓 我要投稿
  • 相關(guān)推薦

Java用于嵌入式系統的優(yōu)點(diǎn)

  與個(gè)人計算機這樣的通用計算機系統不同,嵌入式系統通常執行的是帶有特定要求的預先定義的任務(wù)。yjbys小編下面為你整理了關(guān)于Java用于嵌入式系統的優(yōu)點(diǎn),希望對你有所幫助。

  優(yōu)點(diǎn)1:與處理器無(wú)關(guān)

  Java的第一個(gè)優(yōu)點(diǎn)就是與處理器無(wú)關(guān)。傳統上,嵌入程序就是針對特定的微處理器設計并在其上運行的,而C語(yǔ)言程序的可移植性則可通過(guò)編譯或交叉編譯來(lái)保障。但是利用Java,一個(gè)程序可以存儲在一個(gè)系統上,而被下載并運行在完全不同的另一個(gè)系統上;設備可能從不同地方下載一些程序在一個(gè)處理器上運行,或者不同的處理器運行同一個(gè)程序,并通過(guò)網(wǎng)絡(luò )在相互間傳遞數據。使用Java,一個(gè)嵌入式系統就可能成為一個(gè)通用的通信設備,能下載并運行能完成特定任務(wù)的程序。

  對嵌入式系統而言,這是一個(gè)新的模型,已經(jīng)有一些開(kāi)發(fā)者正在向它靠攏。例如,電視機頂盒的供應商已宣布要在機頂盒內植入 JVM,以使用戶(hù)能通過(guò)Java applets在他們觀(guān)看電視的同時(shí)接收到該電視節目的一些內容。例如在觀(guān)看足球比賽時(shí),看到的支持內容就可以是對球員的技術(shù)統計,在看電影時(shí),看到的支持內容就可以是演員的背景資料。

  這是一個(gè)恰當的設計和實(shí)施模型,首先它可以使開(kāi)發(fā)平臺的選擇更加靈活,無(wú)需在與目標相同的平臺上開(kāi)發(fā),也不用關(guān)心交叉編譯的問(wèn)題,因為Java字節碼能在任何有JVM的操作系統中運行。其次,這種模型帶來(lái)的另一個(gè)優(yōu)點(diǎn)是幾乎所有的檢測和調試可以獨立于目標設備來(lái)進(jìn)行。雖然由于個(gè)別JVM有時(shí)有兼容性的問(wèn)題,應該在所有將用到該程序的平臺上測試它。但一般來(lái)說(shuō),并不要高級而昂貴的、配備有邏輯探針、 ICE以及其他調試工具的、針對目標平臺的開(kāi)發(fā)環(huán)境。

  優(yōu)點(diǎn)2:提高開(kāi)發(fā)速度和可維護性

  Java是一種純粹面向對象的語(yǔ)言。Java類(lèi)被組織成一個(gè)等級層次,在層次結構中,一個(gè)子類(lèi)能夠繼承其超類(lèi)的行為,并可用子類(lèi)所具備的一些特有功能來(lái)擴展其超類(lèi)的功能。對象模型是能定義對應真實(shí)事物的數據結構,使得程序的任務(wù)和任務(wù)如何實(shí)現二者之間的轉換變得基本上透明。

  面向對象的設計和編程的優(yōu)點(diǎn)在于其開(kāi)發(fā)速度和代碼的可維護性,許多面向對象的開(kāi)發(fā)都能通過(guò)利用和更改現存類(lèi)庫來(lái)完成,而不是創(chuàng )造一個(gè)新的結構。這就使開(kāi)發(fā)加快了, Sun‘s Java Workshop(一個(gè)完全用Java寫(xiě)的IDE)的開(kāi)發(fā)者能在幾個(gè)月內建立一個(gè)功能齊備的圖形IDE就是一個(gè)很好的證據。面向對象的方法還盡量使用自然的結構,使其有很高的可讀性,并且可輕易更改和加強。

  優(yōu)點(diǎn)3:安全性高

  由于有了JVM,一個(gè)Java應用程序與操作系統或硬件完全隔絕,因此計算機病毒或其他作祟的代碼就很難獲得對設備的控制。虛擬機是主機設備和那些可能難以確定其質(zhì)量和可靠性的軟件之間的一個(gè)保護層。

  另外,Java設計者從該語(yǔ)言中去掉了指針變量的概念。Java不能任意訪(fǎng)問(wèn)內存,只能讀寫(xiě)有Java內存分配管理系統創(chuàng )建的對象。由于Java編譯器所強制的嚴格的分類(lèi)機制,從理論上來(lái)說(shuō),訪(fǎng)問(wèn)那些未分配給程序的內存區域是不可能的。這個(gè)限制使得寫(xiě)惡意代碼變得非常困難了。當然,這個(gè)保護并不完善,有人已經(jīng)在Java安全模型中找到漏洞,但是,JVM確實(shí)提供了一定的保護,使得幾乎不可能直接在硬件上運行代碼。

  對Java applet施加的限制就更加嚴格了。由于Java applet被設計成從Internet上下載,因而被視為不可信任的代碼,除非它包括用戶(hù)已認定為可信任的主機的數字指紋。JVM在內存的一個(gè)稱(chēng)之為 sandbox的區域運行諸如applet這種不可信任的代碼。它給每個(gè)applet分配資源和特權,并將其限定在這些分配區域范圍中。除了這些限制, sandbox模型還施加如下限制: 禁止讀寫(xiě)當地計算機文件系統;網(wǎng)絡(luò )操作被限止,禁止不被信任的代碼建立與任何計算機的網(wǎng)絡(luò )連接,它也不能在任何小于1024的端口號上監聽(tīng)和接受連接;在運行不被信任代碼的線(xiàn)程組以外,禁止訪(fǎng)問(wèn)或創(chuàng )建線(xiàn)程。

  優(yōu)點(diǎn)4:內存管理簡(jiǎn)單

  Java的內存管理遠比其他語(yǔ)言簡(jiǎn)單,因為它不使用指針。當對象被實(shí)例化時(shí),內存被動(dòng)態(tài)分配。正如我們前面分析的,對個(gè)別內存地址的訪(fǎng)問(wèn)被Java的設計者視為一個(gè)對安全的潛在危險,因此,訪(fǎng)問(wèn)也被禁止。去掉指針的結果不僅提高了安全性,還簡(jiǎn)化了編程,錯誤也減少了。

  為了理解Java怎樣分配內存,我們拿Java與C語(yǔ)言比較一下。在C語(yǔ)言中,可以用值或引用的方式來(lái)訪(fǎng)問(wèn)數據。事實(shí)上,出于靈活性和控制考慮,非原始數據類(lèi)型都由引用方式來(lái)存取,即通過(guò)指針訪(fǎng)問(wèn)。因此,值和引用的不同變得非常清楚,特別是開(kāi)發(fā)者不得不使用不同的符號(*和&)來(lái)存取數據。要用這兩種不同的訪(fǎng)問(wèn)方式,必須清楚理解它們是什么以及為什么應該使用這一個(gè),而不使用那一個(gè)。

  在Java中,由值和引用來(lái)存儲是無(wú)縫的,尤其因為其符號都一樣。兩者間惟一不同在于數據類(lèi)型本身:所有原始數據類(lèi)型始終由值的方式存取;所有對象,包括字串、數組以及文件流,始終由引用方式訪(fǎng)問(wèn)。聲明為原始數據變量類(lèi)型包含該變量的值,聲明為對象的變量則包含對該對象(即該對象的地址)的一個(gè)引用,而非對象自身的引用。僅僅聲明一個(gè)對象變量并不給對象分配內存,必須用“new”關(guān)鍵字來(lái)分配內存和創(chuàng )建對象。

  這兩種方法最根本的不同在于:不可能像在C中那樣就Java內存地址做指針算術(shù)或其他操作。Java中對象的地址是相對的(或虛擬的),它由虛擬機任意分配,因此你沒(méi)有理由還想要指針地址。

  優(yōu)點(diǎn)5:具有垃圾收集功能

  垃圾收集功能自動(dòng)收集內存中未引用的內存,并將其歸回空閑內存鏈表中。JVM使用此功能將不在使用的內存還給系統。當Java程序說(shuō)明并實(shí)例化一個(gè)對象或數組時(shí),它僅僅做一個(gè)JVM請求,訪(fǎng)問(wèn)其下面的系統內存(通常是通過(guò)主機操作系統)并分配內存,Java的垃圾收集系統通過(guò)內存收集對象,然后檢查它們的引用鏈。Java的垃圾收集系統的工作方式一般是搜索內存中的對象,然后檢查它們的引用表。它計算程序中有多少變量當前正在引用每個(gè)對象。若對象的引用數目為零,它知道此對象不再在使用了,它的內存可以收回。其結果就是,不必像C語(yǔ)言那樣,要人工來(lái)釋放分配的內存。在C語(yǔ)言中,釋放內存是一個(gè)必要、耗時(shí)且易出錯的細節。Java自動(dòng)而精確的處理此過(guò)程,去除了C/C++程序中那種常見(jiàn)的錯誤致因。

  優(yōu)點(diǎn)6:網(wǎng)絡(luò )實(shí)現方便

  由于今天的嵌入式系統通常都是面向網(wǎng)絡(luò )的,采用內置網(wǎng)絡(luò )支持的語(yǔ)言節約了在實(shí)現網(wǎng)絡(luò )協(xié)議和通信程序方面耗費的大量時(shí)間和努力。在Java中,網(wǎng)絡(luò )類(lèi)包括 TCP/IP流和使用TCP及UDP的數據報程序,用于HTTP和URL服務(wù)的操作方法,以及錯誤檢查代碼和恢復功能。雖然實(shí)現網(wǎng)絡(luò )也可能用其他語(yǔ)言,比如C語(yǔ)言,但那些語(yǔ)言要求特別的附件軟件包、DLL,或其他必須由操作系統或者第三方銷(xiāo)售提供的程序模塊。特別附件通常要求有操作系統或第三方工具的知識,不像Java,有標準的、內置的網(wǎng)絡(luò )支持。Java包括網(wǎng)絡(luò )包是必要的,因為設計者不能對一個(gè)作為基礎的操作系統的網(wǎng)絡(luò )設施做任何假定,它們必須包括集成網(wǎng)絡(luò )程序庫,以確保Java程序能在所有平臺上工作。

  優(yōu)點(diǎn)7:可以實(shí)現動(dòng)態(tài)配置

  動(dòng)態(tài)配置是指系統啟動(dòng)時(shí)的用戶(hù)制定配置或重新配置。需載入特殊的硬件配置、網(wǎng)絡(luò )參數或在引導期間支持特定用途的一些實(shí)用程序的系統,常常使用動(dòng)態(tài)配置。 Java以動(dòng)態(tài)捆綁來(lái)支持動(dòng)態(tài)配置。當組成一個(gè)程序的各個(gè)類(lèi)文件編譯成字節碼時(shí),在類(lèi)文件之間,或者對JVM包的類(lèi)(如圖形、網(wǎng)絡(luò )以及核心語(yǔ)言支持)引用,還沒(méi)有被解決。當JVM載入程序啟動(dòng)時(shí),它動(dòng)態(tài)的載入并捆綁(即鏈接)程序引用的所有的類(lèi)。因此,要改變系統配置,需要做的就是修正相應的類(lèi)文件。下一次啟動(dòng)時(shí),JVM自動(dòng)捆綁新文件到你的程序中,而新的配置將生效執行。

  優(yōu)點(diǎn)8:可以輕松誘捕和處理錯誤

  與許多操作系統和程序不同,對嵌入系統而言,重新啟動(dòng)通常是無(wú)法接受的。這意味著(zhù)嵌入式系統都必須足夠堅實(shí),能夠以截取錯誤來(lái)防止程序或整個(gè)設備崩潰。

  程序錯誤的致因很多。相對來(lái)說(shuō),很少是因為繼承邏輯錯誤,而大多數程序的崩潰是因為意外輸入,或者是因為程序不能調用系統資源來(lái)完成某個(gè)特定操作造成的。所以,必須能夠預料這些問(wèn)題,并要能夠誘捕它們,以免引起更大的問(wèn)題。雖然,能用幾乎任何程序設計語(yǔ)言來(lái)誘捕和處理錯誤,不過(guò)如果有內置的設施來(lái)做這類(lèi)工作,比如像Java那樣,會(huì )有極大的幫助。

  在Java中,由拋出(產(chǎn)生)一個(gè)異常來(lái)提示錯誤。使用專(zhuān)門(mén)為異常處理而設計的語(yǔ)句(關(guān)鍵字try、catch、和finally),程序能將其錯誤處理代碼安排到幾個(gè)集中區域中。try程序塊是程序執行的正常流程,當一個(gè)異常發(fā)生在 try塊(包括該嵌套塊中的各層子程序)中,控制就交給了catch塊。不管是否有異常發(fā)生,finally塊中的代碼始終要被執行。未被處理的異常會(huì )由調用堆棧自下而上傳播JVM并終止程序。不再需要動(dòng)手編程來(lái)將錯誤狀態(tài)通過(guò)幾層函數調用返回。而是,在錯誤發(fā)生由檢測錯誤的代碼直接拋出一個(gè)異常。這極大地簡(jiǎn)化了應用程序中的錯誤處理代碼,進(jìn)而獲得更好地錯誤處理效果和更堅實(shí)可靠的代碼。

  優(yōu)點(diǎn)9:提供對線(xiàn)程管理的直線(xiàn)支持

  大多數操作系統都給一個(gè)進(jìn)程產(chǎn)生和管理多個(gè)線(xiàn)程的能力,這些線(xiàn)程彼此獨立地完成不同的任務(wù)。但是,很少由程序語(yǔ)言提供對線(xiàn)程管理的直線(xiàn)支持,通常都需要直接調用操作系統功能。Java卻相反,直接在語(yǔ)言中提供了產(chǎn)生、管理和協(xié)調同步線(xiàn)程的功能。與Java的其他特點(diǎn)一樣,該功能是必要的,因為設計者不敢確定底層的操作系統是否支持多線(xiàn)程。

  開(kāi)發(fā)者越來(lái)越多地在程序中使用線(xiàn)程,將其作為滿(mǎn)足一個(gè)程序不能完成的,通常相互無(wú)關(guān)的一些任務(wù)的一種手段。由于Java對線(xiàn)程有內置語(yǔ)言支持,以Java創(chuàng )建多線(xiàn)程較之與其他語(yǔ)言更簡(jiǎn)單、更自然。

  優(yōu)點(diǎn)10:圖形功能強大

  JVM包括一個(gè)龐大的圖形及窗口支持程序包,稱(chēng)為Abstract Windowing Toolkit(AWT)。用AWT,能在應用程序中快速而輕易地創(chuàng )建精致而強大的圖形用戶(hù)界面。對于需要精細的用戶(hù)界面的嵌入系統來(lái)說(shuō),AWT能節省大量開(kāi)發(fā)時(shí)間,從而使產(chǎn)品更快地走向市場(chǎng)。

【Java用于嵌入式系統的優(yōu)點(diǎn)】相關(guān)文章:

Java用于嵌入式系統的局限05-22

嵌入式系統組成10-20

嵌入式系統的名詞10-13

嵌入式系統介紹08-07

嵌入式系統特點(diǎn)07-17

嵌入式系統設計10-25

嵌入式系統的分類(lèi)05-25

什么是嵌入式系統07-02

嵌入式系統文件系統比較09-30

集團oa辦公系統的優(yōu)點(diǎn)08-28

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频