c++: 源代码->可执行文件->系统API->机器码
java :源代码->解释语言-->解释平台(java虚拟机)->系统API->机器码
正因为java相对于c++多了一个兼容各种系统API的解释平台(这个解释平台由设备商和sun解决),因此java可以轻松的在各种系统平台下使用,特别是移动设备。
java相对于c++是更新的技术,java的解释平台就是用c++写的,由于java继承了c++或者面向独享的很多优点,又合理的解决了c++很多缺点(一些复杂且容易引发错误的c++特性、内存泄露等,java虚拟机就是java的奶妈),所以学习和使用都比较方便,因而发展迅猛。
所以简单的来说由于java多了一个奶妈,程序员的工作变得轻松多了,只是效率上有一点损失,在效率要求不是那么严格的领域应用广泛。