Java与C++区别
| 比较项 |
Java |
C++ |
| 指针类型 |
没有 |
有 |
| 多重继承 |
不支持 |
支持 |
| 操作符重载 |
不支持 |
支持 |
| 结构和联合 |
取消 |
有 |
| 函数与变量 |
必须是类的一部分 |
允许将函数和变量定义为全局 |
| new |
自动内存管理 |
由程序员自动释放内存资源 |
| 自动类型转换 |
不支持 |
支持 |
| goto语句 |
不支持 |
支持 |
| 字符串 |
用类对象实现字符串 |
不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结束 |
| 预处理器 |
没有 |
有 |
| 缺省函数参数 |
不支持 |
支持 |
| 速度 |
慢 |
快 |
| 面向对象语言 |
纯粹 |
不是纯粹 |
| 应用 |
做业务,逻辑,分布式.跨平台操作 |
底层操作 |
| byte和 boolean |
有 |
无 |
| 逗号运算符 |
不支持 |
支持 |
| 全局变量 |
没有 |
有 |
| 枚举类型 |
没有 |
有 |
| typedef |
没有 |
有 |
| 类的定义 |
一个类必须位于一个与类同名、但具有后缀.java的文件中 |
类名与类定义所在的文件名没有要求 |
| main的定义 |
Public static void main(String[] args) |
int main()或者 int main(int argc,char* argv[]) |
| 包含文件 |
import |
#include |
| 对象的创建 |
所有的对象都创建在堆中,没有对象被创建在stack中 |
有的对象和变量是创建在stack中的 |
| 数组越界 |
java虚拟机要检测数组是否越界 |
不检测 |
| long double |
无 |
有 |
| 模板 |
没有 |
有 |
| 类定义 |
没有标志结束的分号 |
有标志结束的分号 |
| 类声明 |
无 |
有 |
| 拷贝构造函数 |
无 |
有 |
| 作用域范围运算符“::” |
无 |
有 |
| 析构函数 |
无 |
有 |
| virtual关键字 |
无 |
有 |
| 指向成员的指针 |
无 |
有 |