Java虚拟机在千差万别的物理机上面建立了统一的运行平台,实现了在任意一台Java虚拟机上编译的程序都能够在其他Java虚拟机上正常运行。所以使Java应用的开发比C/C++应用开发更高效快捷。虚拟机会自己完成对硬件平台的兼容及对内存等资源的管理工作。
当一段程序被10个人使用时完全正常,但是当1w个人同时使用的时候,需要更高性能的物理硬件,但在绝大多数情况下,提升硬件性能无法等比例提升程序的运行性能和并发能力,甚至没有任何改善。
这里除了Java虚拟机为了达到所有硬件提供一致的虚拟平台而牺牲了一些硬件相关的性能特性,还有就是人为原因:当开发人员了解诸多虚拟机特性运行原理,可以写出最适合虚拟机运行和自优化的代码。