從事嵌入式開發多年,C語言和Java兩種編程語言都拿來做過項目,凡是沒有那么絕對,不同的編程語言適用于不同的編程場景,對于單片機來講運行個操作系統就已經是很奢侈的事情,再讓運行java的虛擬機還讓人玩不,一旦涉及到操作系統或者java的虛擬機基本上已經超乎單片機的范疇了,單片機再次擴展化就是嵌入式開發了,運行個操作系統或者java虛擬機也不是什么很難的事情。
術業有專攻,對于單片機而言應用場景非常簡單,用最小的開支控制硬件電路,只要是單片機在的地方,軟件要求都不是太強大,但性能要求非常高,成本普遍比較低,常見一些小的控制設備基本上都是單片機完成,前天部門一個做單片機開發的程序員還在抱怨在嵌入式linux上寫的代碼直接平移到單片機上沒法用,占用內存太厲害,相同的功能只好重新寫一遍,系統資源特別是內存資源必須要考慮的事情,又不能增加做太多外圍的擴展畢竟成本有限制,基于以上種種原因,單片機能跑個操作系統都是一件很難的事情更何況是Java,任何公司開發產品都需要從實際情況出發。
java目前主流語言里面的第一編程語言受眾最多,相關從業人數也是最多的,主要在應用級開發以及后臺服務器開發方面有比較大的優勢,可用類庫非常多,所以開發一個功能只要思路確定功能實現起來非常迅速,大部分的基本功能已經封裝成類庫,而且由于受眾比較多,簡單的功能直直接在網上就能搜到然后復制粘貼出來,修改下就能使用,這也是強大的生態鏈支持。
Java也是可以直接調用底層硬件的,通過jni方式只是一個通道而已。在開發安卓框架的時候,有個同事做了多年的java,想轉行做底層的軟件開發,結果搞了三個月堅持不下去了,最后又回歸到java開發去了,不僅僅是語法方面的差異主要是編程方式以及編程思想差異太大,本質上還是面向對象和面向過程的差異,現在的程序員特別是剛入行的喜歡拿比較各種編程語言的差異,更夸張還有鄙視鏈。
C語言和java幾點區別?
1.C語言屬于面向過程的編程語言,java面向對象語言,編程思路有差異
2.C語言主要用在操作系統,通訊行業,驅動開發等底層語言開發,java主要在app以及后端服務器開發,現在大數據領域應用場景也很多。
3.編程語言發展正在向著集成化發展像java這種在編程領域會越來越受到重視,C語言這種底層語言會越來越走向后臺,并不意味著落伍,只不過從前臺走向了后端,而且從業的門檻也提升了,但重要程度不會因此降低。
術業有專攻任何一種編程語言都不是萬能的,能在合適的場景下解決問題就夠了,沒有必要在一些無關的選擇上浪費太多的時間。
希望能幫到你。