Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
与 Java 虚拟机相比,Dalvik 虚拟机获得了“共享常量池”是什么意思?
这有什么好处,Dalvik Machine 如何实现这一点?
Java 虚拟机将每个类存储在一个单独的 .class 文件中。每个类文件都有一个常量池,用于存储字符串、方法名、类名等。如果多个类引用同一个字符串,那么每个类文件都会在其常量池中拥有该字符串的副本。
Dalvik 虚拟机将多个类存储在单个 dex 文件中,具有单个常量池。因此,如果多个类引用同一个字符串,则该 dex 文件的“全局”常量池中只会有该字符串的一份副本。
好处是空间效率更高,而且由于dalvik内存将这些dex文件映射到内存中,所以内存效率也更高。