A. java和android有區別哪個更好
Android和JAVA區別:
Android是主流智能手機的操作系統,JAVA是一種開發語言,兩者沒有好壞優勢之分,只是兩種職業崗位選擇,學安卓從事移動互聯方向開發,學JAVA從事軟體方向開發,主要看個人選擇,從學JAVA轉移到安卓,學安卓轉移到JAVA都是可以的。完美空間認為:從職業角度出發,想要快速從事軟體行業的開發,對大多數計算機不好的人員,安卓Android開發是最合適的選擇。
從整體來講,java和android的區別在於android程序是基於組件和配置的,而且android開發以java語言為開發工具,表面上看他們有點同宗不同門,但實際上區別十分大,android是一個主流智能手機操作系統,java是一種開發語言,兩者沒有好壞之分,而且兩者也是不同的崗位,從工作崗位來看,安卓從事的是移動互聯方向,java則是從事開發方向。
java和android都是可以做手機開發的;在以前半智能機的時代,手機應用的最多的就是java、塞班操作系統了,這兩個操作系統在三年以前應該和今天的安卓、IOS系統差不多,當時認為很完美了,不過時至今日,java系統相對較少,隨著3G時代的到來,人們最重要的網路終端設備一定是手機,而移動終端設備中3G系統的android手機又最多,android手機又以java為基礎,所以二者都可以說能做手機開發。
現在安卓能占智能系統的50%左右的市場份額,當然智能系統或者是移動終端不僅僅是指手機,因為從android3.0以後就開始應用於平板電腦了,android也是在快速的發展,從目前勢頭上來看,好像android要略勝一籌,但是其實這兩者並沒有可比性,因為發展方向並不一樣,側重點也不一樣,java按照實際的開發產品來看,至少有三個方向可以發展;手機終端、電腦客戶端、web伺服器斷,而android只適用於手機終端,因此java的發展范圍相對要廣一些,也就是我們所說的工作崗位更多一些,而android范圍小一些,但是從待遇上來看普遍稍高,各有各的好處,再說學習來看,從android轉java和從java轉android都是可以的,不管哪個行業都存在金字塔頂端的人,如果做好的話兩者都是不錯的方向。
B. android為什麼要用JAVA
android其實是基於linux內核的,但在LINUX平台上,適合的語言很多C C++ JAVA PYTHON RUBY..
C開發中大型圖形界面是個問題,而且不是面對對象的語言。
PYTHON RUBY因為執行機制的關系(解釋性),執行效率不太適合作為首選開發平台
那麼就剩JAVA和C++可以選了
相比C++來說,JAVA雖然執行效率不如C++,但開發效率更高,而且JAVA發展到今天,第三方庫十分龐大,社區也非常活躍,可以說,JAVA是除了C++/C之外,全球最流行的語言。
android剛誕生的時候,其目的肯定是要降低開發門檻,吸引更多開發者加入,從而才能帶動android的進一步普及。而JAVA的入門比C++快,在跨平台開發上比C++更容易,龐大的JAVA社區又可以提供足夠的第三方開發資源。雖然執行效率上有所欠缺,但也比其他語言,比python這些強。所以,JAVA成為了android平台的首選開發語言
也可以說,JAVA是一個很均衡的選擇,在性能和門檻之間平衡的一個選擇。
當然 ,畢竟是linux內核的系統,android的sdk除了提供JAVA版以外,也有C++版的,也還是可以用C++開發android軟體
C. Android開發和JAVA開發有什麼區別
Android開發是java開發的一個分支,android種的類庫有一部分和java類庫基本一致,也就是類名一致,不過java種的swing這些類庫在android種就沒有了,也就是說android種只用了java種的常用的類庫。
D. 甲骨文為什麼告谷歌android侵權java不是免費的語言
Java作為一個編程語言來說,它是開源的,但是Java的JRE是不開源的;同時甲骨文認為Java中的專api也是有版屬權的,谷歌採用了Java中的api(沒用原生的實現方式,api的具體實現谷歌是重寫了的)所以甲骨文就認為谷歌侵權了,同時甲骨文掃描了Android中相應api的幾千萬行代碼後,發現其中有幾行代碼(好像不到10行)是直接抄襲的Java原生的,所以這個就被作為了侵權的證據
E. android和java的區別
android Java虛擬機和sun java虛擬機的主要區別體現在因為手機內存和硬體的限制,不可能直接將sun java虛擬機的機制搬過去,對於一些位元組、內存管理方面需要重新設計,一下是主要區別:
1、Dalvik 和標准 Java 虛擬機(JVM)
Dalvik 基於寄存器,而 JVM 基於棧。基於寄存器的虛擬機對於更大的程序來說,在它們編譯的時候,花費的時間更短。 JVM位元組碼中,局部變數會被放入局部變數表中,繼而被壓入堆棧供操作碼進行運算,當然JVM也可以只使用堆棧而不顯式地將局部變數存入變數表中。Dalvik位元組碼中,局部變數會被賦給65536個可用的寄存器中的任何一個,Dalvik指令直接操作這些寄存器,而不是訪問堆棧中的元素。
2、Dalvik 和 Java 位元組碼的區別
VM位元組碼由.class文件組成,每個文件一個class。JVM在運行的時候為每一個類裝載位元組碼。相反的,Dalvik程序只包含一個.dex文件,這個文件包含了程序中所有的類。Java編譯器創建了JVM位元組碼之後,Dalvik的dx編譯器刪除.class文件,重新把它們編譯成Dalvik位元組碼,然後把它們寫進一個.dex文件中。這個過程包括翻譯、重構、解釋程序的基本元素(常量池、類定義、數據段)。常量池描述了所有的常量,包括引用、方法名、數值常量等。類定義包括了訪問標志、類名等基本信息。數據段中包含各種被VM執行的函數代碼以及類和函數的相關信息(例如DVM所需要的寄存器數量、局部變數表、操作數堆棧大小),還有實例變數。
3、Dalvik 和 Java 運行環境的區別
Dalvik 經過優化,允許在有限的內存中同時運行多個虛擬機的實例,並且每一個Dalvik 應用作為一個獨立的Linux 進程執行。獨立的進程可以防止在虛擬機崩潰的時候所有程序都被關閉。
Dalvik虛擬機在android2.2之後使用JIT (Just-In-Time)技術,與傳統JVM的JIT並不完全相同,
Dalvik虛擬機有自己的 bytecode,並非使用 Java bytecode。
還有以下幾點:
1、Dalvik主要是完成對象生命周期管理,堆棧管理,線程管理,安全和異常管理,以及垃圾回收等等重要功能。
2、Dalvik負責進程隔離和線程管理,每一個Android應用在底層都會對應一個獨立的Dalvik虛擬機實例,其代碼在虛擬機的解釋下得以執行。
3、不同於Java虛擬機運行java位元組碼,Dalvik虛擬機運行的是其專有的文件格式Dex。
不過有一點是習慣了java語言開發的程序員,在android平台上同樣可以接著使用java的全部語法,只不過新增了很多知識點。
F. 為什麼android的軟體都用Java開發而不用C/C++
選擇Java肯定是google經過深思熟慮的抉擇,先說能確定的優勢,
Java有跨平台優勢,手機的硬體可能千差萬別,Java軟體可以只出一套執行檔。而C/C++需要針對機型出專用的編譯版。
Java有大量人員優勢,幾乎不用重復學習就能做android。
Java天生是做應用的語言,和C/C++不同,Java的語言和類庫都是多年積累的、應用最需要的常用功能。
關於性能,說些個人看法。
越是應用,新創意的成分可能越多,定式越少。這時候用一些寬松的語言越能快速的實現產品。
相反沒有創意的復制,才需要高效的語言。比如壓縮演算法-視頻編碼、比如3d繪制演算法,都是專家組總結的最佳演算法,沒有創意只需要實現,這時就需要最高效的語言最大限度的發揮cpu,所以這里用c都不夠,甚至要匯編SIMD,甚至要電路硬體解碼。
有創意的東西、特別是新東西、還沒來得及形成定式,這時需要一些很靈活的語言,比如網頁網站一日數變,甚至Java都不夠靈活,需要更靈活的腳本語言python、php之類才合用。
總之,Java是個靈活和性能的一種折中,不夠最快但夠快,不是最靈活但夠靈活。所以才適合做這些應用軟體。
G. android開發用java嗎
嗯,4.0-8.0都是java,新版本可以用kotlin
H. Android開發和JAVA開發有什麼區別
Android開發和JAVA開發 是截然不同的兩個東西,就好比C語言只是一種概念你不能說他是vs studio的一種分支,因為C語言不是只能在vs studio上編譯運行,C還可以在TC和GCC等等編譯器上運行,Android和JAVA就是這種關系,你不應該問"Android開發和JAVA開發兩者有什麼區別"?你應該問Android為什麼要在JAVA上開發,Android不一定非要在JAVA上開發,任何編程語言都可以進行Android開發,包括C/C++ C# VBpython ,主流來講Android在JAVA上開發,是因為JAVA各方面優點更加適合Android的開發
跨平台,一次編譯到處運行,若你想要你的app在各種不同的平台設備上運行,那麼所採用的開發語言就必須跨平台
效率高,Java語法相對簡單,與C語言和C++語言很接近,但卻丟棄了C++很少使用的、很難理解的、令人迷惑的那些語言特性,雖然有時可能會出現運行效率不佳,但是開發效率比較高。而且C++中讓人頭疼的指針問題,垃圾回收,在JAVA完全不需要考慮,系統自動幫你完成
虛擬機,Java程序是運行在虛擬機上的,這就為許可權控制,崩潰隔離等問題打下了非常良好的基礎,這樣的話就算是一個程序崩潰了,往往也只是應用閃退而已,不容易造成系統的整體崩潰。
成熟,Java語言可以說是一個相當成熟的計算機編程語種,性能很好,用的人也超級多,除了基礎類庫完善,各種高級的第三方組件更是不計其數,更重要的是Java虛擬機規范是開放的,谷歌只要按照甲骨文的虛擬機規范很容易寫出一套虛擬機。
安全,由於Java語言經常被使用在網路環境中,為了增加其程序的安全性,Java語言提了一個防止惡意代碼攻擊的安全機制,另外Java的強類型機制、垃圾回收器、異常處理和安全檢查機制,也使得用Java語言編寫的程序具有很好的健壯性。
I. 安卓前台JAVA與後台JAVA能稱為基於JAVA開發嗎
是的,都是在 Java SE 的基礎上的。
安卓客戶端:安卓 sdk(Java SE + Android API),安卓 NDK
後端 Java:Java SE + Java EE
當然安卓所使用的 Java SE 貌似不超過6。谷歌和甲骨文一直有版權之爭。
J. 如何評價Android用Java侵犯甲骨文版權
Java作為一個編程語言來說,它是開源的,但是Java的JRE是不開源的;同時甲骨文認內為Java中的api也是有版權的容,谷歌採用了Java中的api(沒用原生的實現方式,api的具體實現谷歌是重寫了的)所以甲骨文就認為谷歌侵權了,同時甲骨文掃描了Android中相應api的幾千萬行代碼後,發現其中有幾行代碼(好像不到10行)是直接抄襲的Java原生的,所以這個就被作為了侵權的證據