废话不多说,直接开搞。
1)Java是解释性语言,java源文件经过Java编译器编译(前编译)之后变成字节码文件,再由JVM编译(后编译)、解释、运行。C++是编译型语言,C++源代码通过编译和链接直接生成可由操作系统运行的二进制文件。因此,Java因为运行在JVM上而不是直接运行在操作系统之上,运行效率会比C++慢,但是Java编写的程序也因此拥有了平台无关性。
2)Java是纯面向对象的语言,所有的代码都是在类中实现,而且除了基本数据类型以外,其他的数据类型都是引用数据类型。C++是面向对象,同时兼有面向过程的语言,因此可以向C语言一样,定义全局变量和全局函数(在类之外)。
3)Java中没有指针的概念(而C++中有),去除指针这一概念,是为了防止指针操作不当而引起的系统问题,让程序变得更加安全。
4)Java中没有预处理,C++中有预处理,但是Java中引入了import机制来达到预处理类似的效果。
5)Java中没有goto语句(但是保留了goto这个关键字),C++中有goto语句。
6)Java不支持自动强制类型转换,必须由开发人员显示地进行类型强转;C++支持自动强制类型转换,这会导致程序的不安全。
7)Java具有平台无关性(也可以称为移植性),每种数据类型都分配固定的长度;C++在不同的操作系统上,其数据类型会分配不同的长度。
8)Java不支持运算符重载,C++支持。
9)Java不需要开发人员管理内存(内存的申请和释放),因为Java具有垃圾回收器,能实时监控和管理内存;C++需要开发人员去干涉内存。
10)Java提供的类库大多数是标准库,用来完成特定的任务,简化开发,比如JDBC库,Servlet库等;C++则是一些field标准的、由其他产商提供的库。