成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

都是虛擬機,DVM與JVM的區別在哪兒?

開發 開發工具
Dalvik虛擬機(DVM)存在于Android系統,JVM是Java虛擬機,兩者都是虛擬機,它們之間有什么區別呢?

Dalvik虛擬機(DVM)存在于Android系統,JVM是Java虛擬機,兩者都是虛擬機,它們之間有什么區別呢?

Dalvik虛擬機是Google等廠商合作開發的Android移動設備平臺的核心組成部分之一。它可以支持已轉換為.dex(即Dalvik Executable)格式的Java應用程序的運行,.dex格式是專為Dalvik設計的一種壓縮格式,適合內存和處理器速度有限的系統。(dx 是一套工具,可以將 Java .class 轉換成 .dex 格式. 一個dex檔通常會有多個.class。由于dex有時必須進行***化,會使檔案大小增加1-4倍,以ODEX結尾。)

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所需要的寄存器數量、局部變量表、操作數堆棧大小),還有實例變量。

Dalvik 和 Java 字節碼的區別

3. Dalvik 和 Java SDK的SDK不同

4. 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。

4. dex文件格式可以減少整體文件尺寸,提高I/O操作的類查找速度。

5. odex是為了在運行過程中進一步提高性能,對dex文件的進一步優化。

6. 所有的Android應用的線程都對應一個Linux線程,虛擬機因而可以更多的依賴操作系統的線程調度和管理機制。

7. 有一個特殊的虛擬機進程Zygote,他是虛擬機實例的孵化器。它在系統啟動的時候就會產生,它會完成虛擬機的初始化、庫的加載、預制類庫和初始化的操作。如果系統需要一個新的虛擬機實例,它會迅速復制自身,以最快的速度提供給系統。對于一些只讀的系統庫,所有虛擬機實例都和Zygote共享一塊內存區域。

【本文為51CTO專欄作者“朱國立”的原創稿件,轉載請通過作者微信公眾號“開發者圓桌”獲取聯系和授權】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2010-09-25 15:13:40

JVMJava虛擬機

2011-12-12 13:09:45

云計算

2024-01-08 19:03:15

交換機網絡光模塊

2023-09-12 11:38:18

2011-06-22 13:35:55

JVM

2015-08-27 13:45:25

2022-02-25 10:03:11

對象數據算法

2010-09-17 15:12:57

JVMJava虛擬機

2020-09-24 09:53:48

WebhooksAPI數據

2019-07-23 16:00:36

區塊鏈存儲5G

2010-09-25 16:12:45

JVM虛擬機

2014-04-17 10:16:50

2012-01-13 13:51:21

云計算

2012-01-12 09:30:26

虛擬化云計算Web應用

2020-05-08 16:55:48

Java虛擬機JVM

2013-12-04 09:33:15

軟件成本

2012-10-08 10:07:23

2012-10-08 09:59:18

2023-06-03 00:04:10

容器虛擬機VM

2021-07-30 07:22:51

JVM虛擬機棧 Stack
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产美女黄色片 | 亚洲国产一区二区三区在线观看 | 欧美福利视频 | 欧美一级二级在线观看 | 国产精品一区二区在线 | 国产一区二区影院 | 亚洲视频二区 | 久久99国产精品 | 欧美一级在线观看 | 久久激情av | av黄色在线观看 | 欧美久久一级特黄毛片 | 亚洲麻豆 | 久久久久国产精品一区三寸 | 亚洲国产欧美国产综合一区 | 欧美另类视频在线 | 色播99| 天天影视网天天综合色在线播放 | 亚洲一区二区久久 | 亚洲第一视频 | 欧美亚洲国产日韩 | 九九精品在线 | 亚洲综合99 | 一级国产精品一级国产精品片 | 亚洲精品一区中文字幕乱码 | 久久激情视频 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 欧洲av一区| 亚洲色欲色欲www | 成人在线看片 | 久久国产一区二区 | 国产一区二区自拍 | 一级毛片免费完整视频 | 看片wwwwwwwwwww | 成人av播放 | 日本一区二区高清视频 | 99久久夜色精品国产亚洲96 | 成人三级视频 | 亚洲国产日韩欧美 | 56pao在线| 欧美 日本 国产 |