java運行環(huán)境為jvm赚哗,安卓運行環(huán)境為dvm(Dalvik VM)或avm(Art VM)
jvm基于棧(內存)
dvm基于寄存器(cpu)
基于寄存器的虛擬機對于更大的程序來說筝野,在它們編譯的時候,花費的時間更短沪曙。 JVM字節(jié)碼中,局部變量會被放入局部變量表中萎羔,繼而被壓入堆棧供操作碼進行運算液走,當然JVM也可以只使用堆棧而不顯式地將局部變量存入變量表中。Dalvik字節(jié)碼中贾陷,局部變量會被賦給65536個可用的寄存器中的任何一個缘眶,Dalvik指令直接操作這些寄存器,而不是訪問堆棧中的元素髓废。