Dalvik的内存模型和Java的一样吗?
Dalvik的内存模型和Java的一样吗? 我特别感兴趣的是参考和非long
/非double
原始variables的读写是否是primefaces的,但是我也想知道两个平台的内存模型之间是否有区别。
从4.0(Ice Cream Sandwich)开始,Dalvik的行为应该与JSR-133(Java Memory Model)相匹配。
从3.0(Honeycomb)开始,大部分都已经到位,但是有些小事却被忽略了,在实践中很难遇到(例如一些边缘案例在敲定)。
从2.3(姜饼)开始,Dalvik在单处理器上通常是正确的,但是在SMP硬件上正确行为所需的一些关键特性(例如正确的final
字段处理)缺失。
前姜饼,根本没有记忆障碍,像volatile long
基本东西被打破。
在Dalvik来源有一个文件说:
从用Java编程语言编写的一段代码或以同样的方式针对.class文件的angular度来看,Dalvik虚拟机的目标是使其行为与语言的定义完全一致。 也就是说,在Dalvik中运行的代码将会像其他任何虚拟机上运行的代码一样运行。
这应该意味着行为与正确的Java相同。 不pipe是不是真的,我都不知道。
规范说,32位数字(非双数,非长数字)上的所有操作都是primefaces的。 不能保证在64位数上的操作也是primefaces的。