1)运行过程的不同,Java源程序经过编译器编译成字节码文件,然后由JVM解释执行。而C++/C经过编译、链接后生成可执行的二进制代码。因此C++/C的执行速度比Java快。
2)跨平台性。Java可以跨平台,而C++/C不行。
3)Java没有指针,C++/C有指针
4)Java不支持多重继承,但是可以实现多个接口来达到类似的目的。C++支持多重继承。
5)Java不需要对内存进行管理,有垃圾回收机制。C++/C需要对内存进行显示的管理。
6)Java不支持运算符重载。C/C++支持运算符的重载。
7)Java中每个数据类型在不同平台上所占的字节数是固定的,而C/C++则不然。
Java的优点:
1)跨平台:Java语言可以"一次性编译,到处运行"。跨平台的含义:无论是在Windows平台还是Linux平台对Java程序进行编译,编译后的程序都可以在其他平台上运行。编译器会把Java代码编译成字节码文件,然后在JVM上解释执行,由于字节码与平台无关,因此,Java可以很好地跨平台执行。
2)垃圾回收机制。
3)去掉了C++中难以理解的东西,比如指针、运算符重载等
4)具有较好的安全性。比如Java中有数组边界检测,但是C/C++里面没有。