c++ c# java 区别小汇

简介: 托管代码 ,managed  code,是由公共语言运行环境(而不是直接由操作系统)执行的代码。公共语言运行库会提供例如垃圾自动回收、运行库类型检查和安全支持等。非托管代码,直接由操作系统运行。

托管与非托管代码

托管代码 ,managed  code,是由公共语言运行环境(而不是直接由操作系统)执行的代码。公共语言运行库会提供例如垃圾自动回收、运行库类型检查和安全支持等。
非托管代码,直接由操作系统运行。
java、c#都是托管代码;c++不是。再如,COM 组件、ActiveX 接口和 Win32 API 函数都是非托管代码。
为什么托管代码在企业中用的多?
托管代码由虚拟机执行,它可以帮程序员做许多事情,如数组越界检查、内存回收。人是容易犯错的动物,所以写cpp代码易犯一些隐蔽的错误,如前面讲的数组越界、内存泄露,且这些错误排查起来很困难。因此为了追求开发效率,损失一些执行效率也可以接受。

main 函数
c++。全局函数。
c#。Main首字母大写,必须是一个类的成员函数。

数组
c++. int arr[size].
c#.   int [] arr=new int[size].
java同c#。

类定义
C++。结尾有分号。
c#。结尾无分号。

this关键字
c++。this->成员。
c#。this.成员。

bool
c#。整数与bool不能相互转换。
java。用的是boolean关键字。整数与boolean不能相互转换。

注释
c#。支持 #region 和 ///注释。
java。支持/**   */的注释,用于IDE提示、生成JavaDoc。

反射
c++。只有它不支持。

泛型
c++。泛型,也就是template随便用。参见 http://blog.csdn.net/chuchus/article/details/39696117 。
java。泛型是靠擦除机制实现的。所以

语法糖
java。

const 与 final
c++。const 修饰的对象不可更改。
java。final仅约束变量的引用不变,而非所引用对象的内容不变。因此,java没有c++中“常函数”的机制。

多态
c++。拥有virtual关键字是多态的必要条件。
java。多态是主动的行为。@Override 声明可要可不要。

友元
c++。只有它有。

迭代器
c++。iterator是内部类,即vector、deque等分别拥有自己的iterator。
java。iterator是Iterable接口中的函数。容器类都实现了这个接口。

异常
cpp。没有finally关键字。它表示无论try{}中是否有异常抛出,最终都会执行的动作。

运算符重载
c++。可以重载为友元,也可以重载为成员函数。
java。太弱了,只能重载“+”号。

形参默认值
c++。支持。
java。不支持。
目录
相关文章
|
16天前
|
安全 Java
【JAVA】在 Queue 中 poll()和 remove()有什么区别
【JAVA】在 Queue 中 poll()和 remove()有什么区别
|
17天前
|
Java API
【JAVA】final、finally、finalize 有什么区别?
【JAVA】final、finally、finalize 有什么区别?
|
17天前
|
Java
【JAVA】throw 和 throws 的区别?
【JAVA】throw 和 throws 的区别?
|
17天前
|
Java
【JAVA】Iterator 和 ListIterator 有什么区别?
【JAVA】Iterator 和 ListIterator 有什么区别?
|
2天前
|
Java 开发框架 XML
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
|
2天前
|
Java
java一分钟之-字符流与字节流的区别
【5月更文挑战第11天】Java的输入输出通过流操作,分为字符流和字节流。字节流处理二进制数据,如图片、音频,基类是`InputStream`和`OutputStream`;字符流处理文本,基类是`Reader`和`Writer`。字符流涉及编码转换,字节流不涉及。易错点包括乱码(需指定编码)、混用流类型和忘记关闭流。示例展示了字节流和字符流读文件。理解区别并注意编码和资源管理可提高代码质量。
33 3
|
4天前
|
安全 Java 编译器
Java中String、StringBuilder和StringBuffer的区别
Java中String、StringBuilder和StringBuffer的区别
|
5天前
|
C#
c#一文读懂continue、return、break区别
c#一文读懂continue、return、break区别
8 0
|
5天前
|
开发框架 .NET C#
浅谈c和c++和c#之间的关系
浅谈c和c++和c#之间的关系
8 0
|
13天前
|
Java
Java中 a+=b和a=a+b有什么区别?
Java中 a+=b和a=a+b有什么区别?