日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

dalvik虚拟机与Java区别_05 Android---java虚拟机跟dalvik虚拟机的区别(从01开始点点入门,视频+笔记)...

發布時間:2023/12/10 Android 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dalvik虚拟机与Java区别_05 Android---java虚拟机跟dalvik虚拟机的区别(从01开始点点入门,视频+笔记)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是森森

這節課我簡單給大家介紹一下java虛擬機跟安卓系統虛擬機的區別.可能時間太晚了,有點不在狀態,也有點緊張,大家見諒.

05java虛擬機跟dalvik虛擬機的區別

這篇文章重點寫一寫安卓運行時和Java運行時的區別.

什么是運行時呢?其實我們所說的虛擬機就是運行時.

兩種虛擬機有什么不同呢?

先說Java虛擬機,它的工作流程是這樣的,首先編寫一個Java代碼,然后用Javac這個指令,把它編譯成.class文件的字節碼文件,我們想要運行這個字節碼文件,必須要把它放到虛擬機里(

JVM)去裝載執行.

安卓呢,它也有自己的虛擬機,叫dalvik virtual machine,我們平時都叫它dalvik虛擬機.

dalvik虛擬機的編譯過程要比JVM多了一個步驟,那就是Java的字節碼文件還要經過進一步處理,經過dex compiler,也就是dex編譯器,把它轉成dalvik byte code,dalvik類型的字節碼,然后再放到dalvik虛擬機里運行,那這個過程到底做了什么操作呢?

大家也看了視頻里的實驗,就是同樣的大小,整個文件要比多個文件的文件夾拷貝的要快.

同樣的道理,在Java虛擬機要執行代碼的時候,它要把所有的class字節碼文件給裝載進虛擬機里,假設,你寫的這個應用有一百個Java代碼,就會生成一百個.class的字節碼文件,它把這些字節碼文件一個個裝載進來,然后去找到字節碼,再去解析運行,它比較慢,

而dalvik虛擬機,它所有的代碼,只會生成一個dex文件,這個dex文件直接裝載到dalvik虛擬機就可以解析執行了,運行效率會比較高.

另外,dalvik虛擬機還會對字節碼文件做很多優化操作,普通的Java虛擬機,每個class文件都有一個header,這個頭包含著編譯器的版本,運行的jvm版本等信息,每個class文件都一個頭,就比較浪費存儲空間,

而dalvik虛擬機是把所有class文件的頭都給抽取出來,只生成一個公共的頭,另外,像一般我們寫代碼的時候會有一些靜態變量,比如說,你定義了一個public static final int i=1;它事實上是一個全局的靜態的成員變量,這個值是不會發生修改的,如果很多代碼有這樣的定義,

dalvik虛擬機就把這樣的一些常量給抽取出來,有字符串的常量池,類型定義的常量池,字段的常量池,方法的常量池,所以,dalvik虛擬機更適合移動平臺,它的效率更高,運行速度也更快.

另外呢,谷歌開發dalvik虛擬機還有一個原因,就是Java虛擬機版權問題,不是它自己的東西,用了得掏錢.視頻中故事已經講得很細,不再贅述.

本人QQ號,525902456,如有錯誤,歡迎指出,希望能交到更多朋友,交流技術.

免費贈送安卓教程

總結

以上是生活随笔為你收集整理的dalvik虚拟机与Java区别_05 Android---java虚拟机跟dalvik虚拟机的区别(从01开始点点入门,视频+笔记)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。