功能 |
C++ |
Java |
C# |
跨平台 |
源代码(部分) |
字节码 |
CLI(不流行) |
执行方式 |
编译 |
编译+解释 |
编译+JIT转换 |
中间代码 |
无 |
字节码Bytecode |
中间语言MSIL |
运行环境 |
操作系统 |
JRE/JVM |
CLR/VES |
内存管理 |
直接分配和删除 |
垃圾内存自动回收 |
垃圾内存自动回收 |
多重类继承 |
支持 |
不支持 |
不支持 |
操作符重载 |
支持 |
不支持 |
部分支持 |
对象访问 |
地址/指针 |
引用 |
引用 |
接口类型 |
无 |
有 |
有 |
属性成员 |
无 |
无 |
有 |
成员可用性 |
不支持 |
使用反射 |
使用反射 |
命名空间 |
支持 |
包机制 |
支持 |
指针 |
支持 |
不支持 |
部分支持(非安全代码) |
函数指针 |
支持 |
适配器+监听程序 |
委托 |
全局函数与变量 |
有 |
无 |
无 |
无符号整数类型 |
有 |
无 |
有 |
大十进制数类型 |
无 |
有(库) |
有(语言) |
强制类型转换 |
支持 |
不支持 |
支持 |
越界自动检查 |
无 |
有 |
有 |
多维数组 |
数组的数组 |
数组的数组 |
真正多维数组 |
索引 |
支持 |
不支持 |
支持 |
泛型 |
编译时模板 |
运行时泛型(有限制) |
编译时模板 |
泛型类型编译 |
具体化 |
类型擦除 |
具体化 |
线程同步 |
调用函数 |
语言内部 |
语言内部 |
异常处理 |
可选 |
支持检查异常 |
只支持非检查异常 |
标准类库 |
贫乏 |
丰富 |
庞大 |
适用领域 |
面向对象的
系统和界面编程 |
跨平台(服务器端)
网络编程 |
Windows平台的
.NET和组件编程 |
新闻热点
疑难解答