I think the key, is to not think about the Java VM in the same sense that you think of for Destkop or Server virtualization -- they're very different. At the most basic level, the Java VM (in this case Dalvik) is simply a translation layer between the bytecode generated by the "compiler" into native machine code. It is a virtual machine -- but it doesn't have the same overhead as say, running Ubuntu in VirtualBox.