{eval=Array;=+count(Array);}
回答里多是不怎么懂java的前端小程序員,對java理解太狹隘,Java最初的設計就是用于嵌入式的(當Java還叫Oak的時候,它是用于超前于時代很多的*7(Star-7)PDA項目),Java SE Embedded、Java ME(其中例如Blu-ray Disc Java(BD-J))、JavaCard、Sun SPOT是幾種不同層面的嵌入式Java開發技術。有興趣的可以去搜索了解。
實際上嵌入式系統用java寫軟件很廣泛和常見的,會把jvm一起刷到固件運行,比如身邊的安卓電視,機頂盒還有車載的大屏影音娛樂設備(常見的MTK+Android方案)都是典型的Android+Java的應用。
此外商場飯店用于掃碼的POS機,甚至有時你看到商場內展示圖像和樓層信息的顯示屏幕,這些也屬于使用嵌入式Linux+Android+Java的應用。
嵌入式Linux+Android系統+Java軟件的應用在影音娛樂方向目前可以說成為主流。實現影音圖像類應用
說的對,只要你愿意理論上什么語言都可以進行單片機編程!呵呵,只要你學過編譯器原理這個問題就很簡單,當然你一定要對CPU指令集指令集有所研究,通過編譯器編譯出對應指令集的指令就可以了,在簡單的說只要Java編譯器能把源代碼編譯成對應單片機的指令集,就可以使用Java編程語言進行單片機編程!喜歡的讀者可關注”嘿咪編程專家”與我私信活留言
理論上沒問題,不過好像沒人這么做,最搞笑的是JAVA本來就是為了在各種不同單片機上能有統一代碼而設計的。。。[可愛][可愛][可愛]
通常單片機用Java的不多,一般用C或C++。但也有的單片機可以用Java,這樣的單片機需要集成JVM,如freeRTS就可以使用Java。現在ARM核的單片機在大量應用,ARM不僅可以支持Java,還可以運行多種操作系統。
而Java起源,就是用于電視機、電話、鬧鐘、烤面包機等家用電器的控制和通信。可是它誕生的太早了,后來在發展中改變了自身的主要應用方向。
用JAVA做單片機程序不但不可行而且沒有必要。
單片機是最簡潔的計算機。單片機程序寫在內存中由CPU直接讀取執行。而手機和個人電腦則需要從文件系統中將程序讀到內存中再執行。JAVA程序要更復雜一些,需要先編譯成字節碼,在執行的時候由不同操作系統上的虛擬機,根據所在系統的指令集進行實時編譯之后再執行的。JAVA不能脫離操作系統。
可是單片機上沒有也不需要操作系統,根本不具備JAVA程序的運行條件。盡管理論上可以對JAVA程序靜態編譯后寫到單片機上再執行。但這么做了JAVA程序的很多特性都失去了意義,還不如直接用C語言寫出來即簡單又有效率。
事實上,目前的Java語言沒有辦法運行在單片機上。Java語言不是一種編譯型語言,是一種字節碼解釋型語言。Java代碼的運行除了需要一個Java虛擬機,還需要一大堆相關的基本庫。以arm處理器為例,arm 32位版本的Java虛擬機運行時占用內存空間為190M字節,基本庫和你的代碼運行空間還不包括在內。如果一個處理器被稱為單片機,內存一般以KB計算,有些高級單片機有1M或2M內存已經不得了了。這里內存容量是指RAM,不是閃存。這個評估還是把單片機字長,操作系統,指令系統給忽略的情況下做出的。說到Java的本質,就是運行在哪里,就要把編譯器安裝到哪里的累贅語言。此外,由于Java使用了動態內存自動回收機制,使得這種語言不可能應用于資源緊缺型處理器。
Java最初設計的初衷是通過網絡來控制微波爐等單片機設備做演示,所以當初設計成跨平臺,并發展出了j2se、j2me、applet以及后面的j2ee,j2me就是移動端的方案,也就是為單片機準備的,現在官方網站應該還有單片機版本的虛擬機環境下載,Java發展的今天表面看只有j2se和j2ee,其實Android系統就是Java的單片機方案,google把sun公司的Java班底挖過去重構的,但是Google給他換了個名,在官方場合是不承認這是Java擴展的!
是的,如果你能做出像gcj那樣的編譯器,絕對可以!但是可能會限制一些動態特性,比如動態加載類,比如反射,比如包的掃描。。。所以需要虛擬機運行時支持的特性都不能用!
怎么說呢,java要運行就得有jvm環境。單片機有andriod環境的比較少。用c/c++較多。
再者java是高級語言,不能直接操控底層硬件。在如c直接
10
回答9
回答3
回答10
回答10
回答7
回答6
回答1
回答0
回答0
回答