与Java虚拟机相比,Dalvik虚拟机获得“共享常量池”是什么意思?
这有什么好处?Dalvik机器如何做到这一点?
最佳答案
Java虚拟机将每个类存储在单独的.class文件中。每个类文件都有一个用于字符串,方法名,类名等的常量池。如果多个类引用相同的字符串,则每个类文件在其常量池中将具有该字符串的副本。
Dalvik虚拟机将多个类存储在单个dex文件中,并具有单个常量池。因此,如果多个类引用同一字符串,则该dex文件在“全局”常量池中将只有该字符串的一个副本。
这样做的好处是空间效率更高,并且由于dalvik内存将这些dex文件映射到内存中,因此内存效率也更高。