C# VS Java

  一、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字符的序列
sbyte8位带符号整数
short16位带符号整数
int32位带符号整数
long64位带符号整数
byte8位无符号整数
ushort16位无符号整数
uint32位无符号整数
ulong64位无符号整数
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,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。