c#,C++,Java比较
2007-06-30 10:37
375 查看
1:纯对象导向语言
C# 和 java 都是纯对象导向语言,C++ 非纯对象导向语言。
2:强制型态检查
C# 和 java 都强制进行型态检查,C++ 则较宽松。
3:宏
C# 和 java 都不支持宏,C++ 支持宏。
4:Template
C# 和 java 都不支持 template,C++ 支持 template。
5:多重继承
C# 和 java 都不支持多重继承,且都支持 interface,C++ 支持多重继承。
6:指针
C# 和 java 都不支持指针,C++ 支持指针。(不过,C# 允许在 unsafe code 内使用指针)
7:内存管理
C# 和 java 都支持垃圾收集。C++ 不支持垃圾收集。
8:虚拟机器
C# 和 java 都需要虚拟机器,C++ 不需要虚拟机器。Java 的执行档是中间码,叫做 bytecode,透过 java Runtime Environment(即 JRE)来执行;C# 的执行档也是中间码,叫做 managed code,透过 NGWS Runtime 来执行。除了 java,你也可以用其它程序语言(例如 Ada、Python)来作出 bytecode。除了 C#,你也可以用其它程序语言(例如 Visual Basic、C++)来作出 managed code。
9:Namespace
C# 和 java 都支持阶层式的 namespace,但 C++ 只支持单层的 namespace。Java 的 namespace 称为 package,C# 的 namespace 就称为 namespace。Java 和 C# 都使用「.」当作 namespace 的符号,而 C++ 使用「::」。
10:Platform-Independent Type
C# 和 java 都使用 Platform-Independent Type,C++ 的 type 会受到平台的影响。
11:使用 Wrapper 包装基本型态
C# 和 java 都支持将基本型态包装成对象,在 java 叫做 wrapper,在 C# 则是叫做 box。
12:boolean != integer
C# 和 java 都不允许把整数当布尔值用,C++ 则允许。
13:access modifier
C# 和 java 都支持四种等级的 access modifier,包括 public、protected、private、default/internal;C++ 只支持 public、protected、private。Java 的 default(不写)指的就是只针对同一个 package 开放,正好就是 C# 的 internal。
14:变量初始化
C# 和 java 都规定不可使用未初始化的变量,C++ 则完全没有这方面的限制。Java 和 C# 的编译器都会主动帮未初始化的 field/data member 设定初始值,C++ 则不然。
15:转型
C# 和 java 都规定基本型态和 reference 型态不能互转。
16:数组边界检查
C# 和 java 都会主动进行数组边界检查,C++ 则不然
17:呼叫 Native Code
C# 和 java 都支持呼叫 native code。Java 透过 JNI(Java Native Interface);C# 透过 PInvoke(Platform Invocation Service)
18:Metadata
C# 和 java 的中间码都包含有类别的 metadata,而 C 语言则是独立在 header file。
19:中间码指令
C# 的 IL 中间码指令和 java 的 bytecode 指令非常类似,有的甚至一样。
20:例外处理
C# 和 java 都支持 try/catch/finally,但 C++ 只支持 try/catch。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1672319
C# 和 java 都是纯对象导向语言,C++ 非纯对象导向语言。
2:强制型态检查
C# 和 java 都强制进行型态检查,C++ 则较宽松。
3:宏
C# 和 java 都不支持宏,C++ 支持宏。
4:Template
C# 和 java 都不支持 template,C++ 支持 template。
5:多重继承
C# 和 java 都不支持多重继承,且都支持 interface,C++ 支持多重继承。
6:指针
C# 和 java 都不支持指针,C++ 支持指针。(不过,C# 允许在 unsafe code 内使用指针)
7:内存管理
C# 和 java 都支持垃圾收集。C++ 不支持垃圾收集。
8:虚拟机器
C# 和 java 都需要虚拟机器,C++ 不需要虚拟机器。Java 的执行档是中间码,叫做 bytecode,透过 java Runtime Environment(即 JRE)来执行;C# 的执行档也是中间码,叫做 managed code,透过 NGWS Runtime 来执行。除了 java,你也可以用其它程序语言(例如 Ada、Python)来作出 bytecode。除了 C#,你也可以用其它程序语言(例如 Visual Basic、C++)来作出 managed code。
9:Namespace
C# 和 java 都支持阶层式的 namespace,但 C++ 只支持单层的 namespace。Java 的 namespace 称为 package,C# 的 namespace 就称为 namespace。Java 和 C# 都使用「.」当作 namespace 的符号,而 C++ 使用「::」。
10:Platform-Independent Type
C# 和 java 都使用 Platform-Independent Type,C++ 的 type 会受到平台的影响。
11:使用 Wrapper 包装基本型态
C# 和 java 都支持将基本型态包装成对象,在 java 叫做 wrapper,在 C# 则是叫做 box。
12:boolean != integer
C# 和 java 都不允许把整数当布尔值用,C++ 则允许。
13:access modifier
C# 和 java 都支持四种等级的 access modifier,包括 public、protected、private、default/internal;C++ 只支持 public、protected、private。Java 的 default(不写)指的就是只针对同一个 package 开放,正好就是 C# 的 internal。
14:变量初始化
C# 和 java 都规定不可使用未初始化的变量,C++ 则完全没有这方面的限制。Java 和 C# 的编译器都会主动帮未初始化的 field/data member 设定初始值,C++ 则不然。
15:转型
C# 和 java 都规定基本型态和 reference 型态不能互转。
16:数组边界检查
C# 和 java 都会主动进行数组边界检查,C++ 则不然
17:呼叫 Native Code
C# 和 java 都支持呼叫 native code。Java 透过 JNI(Java Native Interface);C# 透过 PInvoke(Platform Invocation Service)
18:Metadata
C# 和 java 的中间码都包含有类别的 metadata,而 C 语言则是独立在 header file。
19:中间码指令
C# 的 IL 中间码指令和 java 的 bytecode 指令非常类似,有的甚至一样。
20:例外处理
C# 和 java 都支持 try/catch/finally,但 C++ 只支持 try/catch。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1672319
相关文章推荐
- Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳
- c++/java/c# 几种编程语言的指针、引用比较
- C++ Java C#的比较-命名空间
- Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳
- 比较C#与C++、Java的异同
- C++、Java和C#的特性比较
- JAVA C# C/C++之比较学:初始化顺序
- 六种流行的语言---C、C++、python、Java、php、C#比较[转]
- Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳
- Java_C++_C# 移位运算符比较
- C# 与 C 、 C++ 、 D 、 Java 的性能比较(二)
- C#与C++、Java之比较概览
- c++/java/c# 几种编程语言的指针、引用比较
- C++、java、C#命名空间比较
- C#和java,C#和C++各有什么不同(2) -- 语言规范的比较
- Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳
- 六种流行的语言---C、C++、python、Java、php、C#比较[转]
- C#、Java、C、C++初始化数组过程和比较
- C# 与 C 、 C++ 、 D 、 Java 的性能比较(三)
- C++、C#、Java、JavaScript之间的性能比较