共享常量池?

时间:2013-05-22 11:40:48

标签: java jvm dalvik

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

这有什么好处以及Dalvik Machine如何实现这一目标?

1 个答案:

答案 0 :(得分:4)

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

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

好处是它更节省空间,并且由于dalvik内存将这些dex文件映射到内存中,因此它的内存效率更高。