2

与 Java 虚拟机相比,Dalvik 虚拟机获得了“共享常量池”是什么意思?

这有什么好处,Dalvik Machine 如何实现这一点?

4

1 回答 1

4

Java 虚拟机将每个类存储在一个单独的 .class 文件中。每个类文件都有一个常量池,用于存储字符串、方法名、类名等。如果多个类引用同一个字符串,那么每个类文件都会在其常量池中拥有该字符串的副本。

Dalvik 虚拟机将多个类存储在单个 dex 文件中,具有单个常量池。因此,如果多个类引用同一个字符串,则该 dex 文件的“全局”常量池中只会有该字符串的一份副本。

好处是空间效率更高,而且由于dalvik内存将这些dex文件映射到内存中,所以内存效率也更高。

于 2013-05-22T17:10:48.133 回答