1. 程式人生 > >Android面試補習(一).JVM,DVM,ART虛擬機器

Android面試補習(一).JVM,DVM,ART虛擬機器

        每天都在學習,最近在找找實習工作,在家等待的時候就會複習一下以前的知識,避免太久沒接觸生疏了,寫個部落格作為記錄吧,每次都會分享一些實用的,易懂的知識,畢竟我們實習生能瞭解的就這個層次。

        第一篇就是關於虛擬機器,有點吊的,不過別怕,知識一些粗淺的瞭解一下,雖然有的東西我們不必去深入研究,但是瞭解還是要的。

        因為自己的知識也是從巨人肩膀學習過來的加上自己的理解,如有錯誤,請指出,如有侵權,請聯絡QQ87127814作為初學者,對各位表示自己的誠意。

        大家都知道JAVA號稱一處編譯處處執行,這也是其優勢,依靠JAVA虛擬機器JVM,把JAVA語言編譯成.class位元組碼檔案,JVM在執行這些位元組碼,把位元組碼編譯成其目前存在的平臺能翻譯的機器指令執行。

           而DVM是安卓虛擬機器,但是大家都知道安卓是JAVA程式設計,那DVM和JVM的區別呢,首先,大家知道安卓程式碼編譯後的是.dex檔案,而JAVA是.class檔案,這就是一個區別。 .dex檔案執行在DVM虛擬機器上,那麼.dex和.class有什麼不一樣呢,其實就是把.class再編譯一次。哈哈。   但是最重要的是JVM是基於棧的,而DVM是基於暫存器的,所以在速度方面,DVM是完敗JVM的,作為手機平臺,這一點是至關重要的。

            那ART是啥,很多人可能沒有聽過ART,其實他也是一個虛擬機器,而且,是為了代替DVM產生的。android5.0的時候ART就替代了DVM,成為了安卓的虛擬機器,補充一下,ART是在android4.4釋出的。那麼替代DVM,說明ART有其更大的優勢,這裡簡單的說一下

DVM:每次執行的時候,位元組碼都需要通過即時編譯系統轉換為機器碼,所以速度較慢

ART:第一次安裝的時候,位元組碼就會預編譯為機器碼,之後執行的時候就不需要這樣了,啟動和速度都會比較快

瞭解的很膚淺,但是目前是夠了,日後有興趣再深入研究。