c++ c# java 区别小汇
来源:互联网 发布:m2数据查询 编辑:程序博客网 时间:2024/05/22 01:28
托管与非托管代码
托管代码 ,managed code,是由公共语言运行环境(而不是直接由操作系统)执行的代码。公共语言运行库会提供例如垃圾自动回收、运行库类型检查和安全支持等。
非托管代码,直接由操作系统运行。
java、c#都是托管代码;c++不是。再如,COM 组件、ActiveX 接口和 Win32 API 函数都是非托管代码。
为什么托管代码在企业中用的多?
托管代码由虚拟机执行,它可以帮程序员做许多事情,如数组越界检查、内存回收。人是容易犯错的动物,所以写cpp代码易犯一些隐蔽的错误,如前面讲的数组越界、内存泄露,且这些错误排查起来很困难。因此为了追求开发效率,损失一些执行效率也可以接受。
非托管代码,直接由操作系统运行。
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 和 ///<summary>注释。
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。不支持。
1 0
- c++ c# java 区别小汇
- C#与C++、JAVA的区别
- C#和C++、Java语句区别
- 小言C#与java对json的解析区别
- c# 与c/c++/java的区别(待续)
- C++, Objective C, Java, C# 详细比较和区别
- C++, Objective C, Java, C# 详细比较和区别
- C/C++、JAVA、C#之间的关系和区别?
- object-c 与 java,c#等语言的 语法区别
- c/c++/java区别
- c++/java小知识
- C/C++,C#,Java区别
- C#与java区别
- C#与java区别
- java和C#区别
- C#和Java区别
- C# 和Java区别
- C与C#的区别
- Linux文件系统基本结构
- SVN使用说明
- android开发必备之apk签名
- UML类图几种关系的总结
- uva10167Birthday Cake
- c++ c# java 区别小汇
- Android Service
- SCCB 总线和I2C总线区别
- MKNetworkKit的介绍
- 如何使用VC的预编译技术
- 如何去掉文中的^M
- Servlet
- Web图表开发工具JFreeChart与ChartDirector使用评测
- VS2012 中 修改源文件编码格式默认为指定格式