|
一、C#、C++和Java
C#的语言规范由Microsoft的Anders Hejlsberg与Scott Wiltamuth编写。在当前Microsoft天花乱坠的宣传中,对C#和C++、Java作一番比较总是很有趣的。考虑到当前IT媒体的舆论倾向,如果你早就知道C#更接近Java而不是C++,事情也不值得大惊小怪。显然,结论应该是:Java和C#虽然不是孪生子,但C#最主要的特色却更接近Java而不是C++。
表1:比较C#、C++和Java最重要的功能 | |||
功能 | C# | C++ | Java |
继承 | 允许继承单个类,允许实现多个接口 | 允许从多个类继承 | 允许继承单个类,允许实现多个接口 |
接口实现 | 通过“interface”关键词 | 通过抽象类 | 通过“interface”关键词 |
内存管理 | 由运行时环境管理,使用垃圾收集器 | 需要手工管理 | 由运行时环境管理,使用垃圾收集器 |
指针 | 支持,但只在很少使用的非安全模式下才支持。通常以引用取代指针 | 支持,一种很常用的功能。 | 完全不支持。代之以引用。 |
源代码编译后的形式 | .NET中间语言(IL) | 可执行代码 | 字节码 |
单一的公共基类 | 是 | 否 | 是 |
异常处理 | 异常处理 | 返回错误 | 异常处理。 |
下面将说说C#和Java的一些重要区别。
二、语言规范的比较
2.1、简单数据类型
简单数据类型(Primitive)在C#中称为值类型,C#预定义的简单数据类型比Java多。例如,C#有unit,即无符号整数。表2列出了所有C#的预定义数据类型:
表2:C#中的值类型 | |
类型 | 说明 |
object | 所有类型的最终极的基类 |
string | 字符串类型;字符串是一个Unicode字符的序列 |
sbyte | 8位带符号整数 |
short | 16位带符号整数 |
int | 32位带符号整数 |
long | 64位带符号整数 |
byte | 8位无符号整数 |
ushort | 16位无符号整数 |
uint | 32位无符号整数 |
ulong | 64位无符号整数 |
float | 单精度浮点数类型 |
double | 双精度浮点数类型 |
bool | 布尔类型;bool值或者是true,或者是false |
char | 字符类型;一个char值即是一个Unicode字符 |
decimal | 有28位有效数字的高精度小数类型 |
2.2、常量
忘掉Java中的static final修饰符。在C#中,常量可以用const关键词声明。
public const int x = 55;
NET技术:C# VS Java,转载需保留来源!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。