{eval=Array;=+count(Array);}

成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

問答專欄Q & A COLUMN

如果有配套的編譯器,JAVA語言可不可以編寫單片機(jī)程序呢?

孫淑建孫淑建 回答10 收藏1
收藏問題

10條回答

waruqi

waruqi

回答于2022-06-22 18:37

回答里多是不怎么懂java的前端小程序員,對java理解太狹隘,Java最初的設(shè)計(jì)就是用于嵌入式的(當(dāng)Java還叫Oak的時(shí)候,它是用于超前于時(shí)代很多的*7(Star-7)PDA項(xiàng)目),Java SE Embedded、Java ME(其中例如Blu-ray Disc Java(BD-J))、JavaCard、Sun SPOT是幾種不同層面的嵌入式Java開發(fā)技術(shù)。有興趣的可以去搜索了解。

實(shí)際上嵌入式系統(tǒng)用java寫軟件很廣泛和常見的,會(huì)把jvm一起刷到固件運(yùn)行,比如身邊的安卓電視,機(jī)頂盒還有車載的大屏影音娛樂設(shè)備(常見的MTK+Android方案)都是典型的Android+Java的應(yīng)用。

此外商場飯店用于掃碼的POS機(jī),甚至有時(shí)你看到商場內(nèi)展示圖像和樓層信息的顯示屏幕,這些也屬于使用嵌入式Linux+Android+Java的應(yīng)用。

嵌入式Linux+Android系統(tǒng)+Java軟件的應(yīng)用在影音娛樂方向目前可以說成為主流。實(shí)現(xiàn)影音圖像類應(yīng)用

評論0 贊同0
  •  加載中...
Nekron

Nekron

回答于2022-06-22 18:37

說的對,只要你愿意理論上什么語言都可以進(jìn)行單片機(jī)編程!呵呵,只要你學(xué)過編譯器原理這個(gè)問題就很簡單,當(dāng)然你一定要對CPU指令集指令集有所研究,通過編譯器編譯出對應(yīng)指令集的指令就可以了,在簡單的說只要Java編譯器能把源代碼編譯成對應(yīng)單片機(jī)的指令集,就可以使用Java編程語言進(jìn)行單片機(jī)編程!喜歡的讀者可關(guān)注”嘿咪編程專家”與我私信活留言

評論0 贊同0
  •  加載中...
xuweijian

xuweijian

回答于2022-06-22 18:37

理論上沒問題,不過好像沒人這么做,最搞笑的是JAVA本來就是為了在各種不同單片機(jī)上能有統(tǒng)一代碼而設(shè)計(jì)的。。。[可愛][可愛][可愛]

評論0 贊同0
  •  加載中...
cocopeak

cocopeak

回答于2022-06-22 18:37

通常單片機(jī)用Java的不多,一般用C或C++。但也有的單片機(jī)可以用Java,這樣的單片機(jī)需要集成JVM,如freeRTS就可以使用Java?,F(xiàn)在ARM核的單片機(jī)在大量應(yīng)用,ARM不僅可以支持Java,還可以運(yùn)行多種操作系統(tǒng)。

而Java起源,就是用于電視機(jī)、電話、鬧鐘、烤面包機(jī)等家用電器的控制和通信??墒撬Q生的太早了,后來在發(fā)展中改變了自身的主要應(yīng)用方向。

評論0 贊同0
  •  加載中...
awkj

awkj

回答于2022-06-22 18:37

用JAVA做單片機(jī)程序不但不可行而且沒有必要。

單片機(jī)是最簡潔的計(jì)算機(jī)。單片機(jī)程序?qū)懺趦?nèi)存中由CPU直接讀取執(zhí)行。而手機(jī)和個(gè)人電腦則需要從文件系統(tǒng)中將程序讀到內(nèi)存中再執(zhí)行。JAVA程序要更復(fù)雜一些,需要先編譯成字節(jié)碼,在執(zhí)行的時(shí)候由不同操作系統(tǒng)上的虛擬機(jī),根據(jù)所在系統(tǒng)的指令集進(jìn)行實(shí)時(shí)編譯之后再執(zhí)行的。JAVA不能脫離操作系統(tǒng)。

可是單片機(jī)上沒有也不需要操作系統(tǒng),根本不具備JAVA程序的運(yùn)行條件。盡管理論上可以對JAVA程序靜態(tài)編譯后寫到單片機(jī)上再執(zhí)行。但這么做了JAVA程序的很多特性都失去了意義,還不如直接用C語言寫出來即簡單又有效率。

評論0 贊同0
  •  加載中...
cjie

cjie

回答于2022-06-22 18:37

把JAVA抽條成幾塊錢單片機(jī)也能運(yùn)行的瘦系統(tǒng)的話,也就失去了JAVA的意義了,和C也就沒有什么本質(zhì)不同了,純屬為了JAVA而JAVA。

評論0 贊同0
  •  加載中...
Hancock_Xu

Hancock_Xu

回答于2022-06-22 18:37

事實(shí)上,目前的Java語言沒有辦法運(yùn)行在單片機(jī)上。Java語言不是一種編譯型語言,是一種字節(jié)碼解釋型語言。Java代碼的運(yùn)行除了需要一個(gè)Java虛擬機(jī),還需要一大堆相關(guān)的基本庫。以arm處理器為例,arm 32位版本的Java虛擬機(jī)運(yùn)行時(shí)占用內(nèi)存空間為190M字節(jié),基本庫和你的代碼運(yùn)行空間還不包括在內(nèi)。如果一個(gè)處理器被稱為單片機(jī),內(nèi)存一般以KB計(jì)算,有些高級單片機(jī)有1M或2M內(nèi)存已經(jīng)不得了了。這里內(nèi)存容量是指RAM,不是閃存。這個(gè)評估還是把單片機(jī)字長,操作系統(tǒng),指令系統(tǒng)給忽略的情況下做出的。說到Java的本質(zhì),就是運(yùn)行在哪里,就要把編譯器安裝到哪里的累贅語言。此外,由于Java使用了動(dòng)態(tài)內(nèi)存自動(dòng)回收機(jī)制,使得這種語言不可能應(yīng)用于資源緊缺型處理器。

評論0 贊同0
  •  加載中...
firim

firim

回答于2022-06-22 18:37

Java最初設(shè)計(jì)的初衷是通過網(wǎng)絡(luò)來控制微波爐等單片機(jī)設(shè)備做演示,所以當(dāng)初設(shè)計(jì)成跨平臺(tái),并發(fā)展出了j2se、j2me、applet以及后面的j2ee,j2me就是移動(dòng)端的方案,也就是為單片機(jī)準(zhǔn)備的,現(xiàn)在官方網(wǎng)站應(yīng)該還有單片機(jī)版本的虛擬機(jī)環(huán)境下載,Java發(fā)展的今天表面看只有j2se和j2ee,其實(shí)Android系統(tǒng)就是Java的單片機(jī)方案,google把sun公司的Java班底挖過去重構(gòu)的,但是Google給他換了個(gè)名,在官方場合是不承認(rèn)這是Java擴(kuò)展的!

評論0 贊同0
  •  加載中...
LiuRhoRamen

LiuRhoRamen

回答于2022-06-22 18:37

是的,如果你能做出像gcj那樣的編譯器,絕對可以!但是可能會(huì)限制一些動(dòng)態(tài)特性,比如動(dòng)態(tài)加載類,比如反射,比如包的掃描。。。所以需要虛擬機(jī)運(yùn)行時(shí)支持的特性都不能用!

評論0 贊同0
  •  加載中...
warnerwu

warnerwu

回答于2022-06-22 18:37

怎么說呢,java要運(yùn)行就得有jvm環(huán)境。單片機(jī)有andriod環(huán)境的比較少。用c/c++較多。

再者java是高級語言,不能直接操控底層硬件。在如c直接

評論0 贊同0
  •  加載中...

最新活動(dòng)

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<