微软 C# 编程语言 与 SUN 微电子 JAVA 编程语言比较
(中文版)
作者:Dare Obasanjo
中文化:张海霖 CSDN id:btut2004
介绍Introduction
C# 是一种面向对象的语言,其设计目标是使程序员能够在微软的.NET平台上快速地建立广泛的应用. C# 和.NET平台的目的是通过使得程序员从一些底层问题如内存管理,类型安全,建立底层运行库,数组边界检查等工作中解脱出来,从而缩短开发的时间。进而使得程序员可以把他们的时间和精力实际花在他们的应用和商业逻辑上。如果用一句话说明 C# 和.NET平台相对于Java 和Java平台的关系,作为一名Java程序员的描述可能是 "Java语言和平台的简短描述"
下面我基于自己在使用两种语言的经验给出了C#和Java编程语言在语言和库方面的相似点和不同点的一个大纲。所有的c#代码都在Microsoft's .NET Framework Beta 2版测试通过,所有的Java代码都在Java™ 2, Standard Edition (J2SE™) version 1.4 Beta 2 下测试通过。
改变与保留的一样多
我们都是对象
就像Java一样, C# 也是有着一个单独的根类层次,C#中所有的类都是System.Object类的子类这类似于Java中所有的类都是 java.lang.Object类的子类一样。 两种语言的对象类有一些类似的方法 (比如: System.Object's ToString() 和 java.lang.Object's toString()) ,但也有不同(比如System.Object 就没有提供与在java.lang.Object中 wait(), notify() or notifyAll() 类似的方法)。
提示: 在C#中, object类既可以写成object也可以是Object. 小写的"object" 是 C# 的关键字,它在编译期间被替换成类名"System.Object"。
关键字混乱
Java和C#之间在造句上有着大量的相似点, 除了极少数的如transient, throws and strictfp之外Java的每一个关键字都有它的C#等价物。下面是一个Java和C#关键字表,Java关键字红色,C#中的等价物是蓝色。
C# keyword
Java keyword
C# keyword
Java keyword
C# keyword
Java keyword
C#
keyword
Java
keyword
abstract
abstract
explicit
N/A
object
N/A
this
this
as
N/A
extern
native
operator
N/A
throw
throw
base
super
finally
finally
out
N/A
true
true
bool
boolean
fixed
N/A
override
N/A
try
try
break
break
float
float
params
N/A
typeof
N/A
byte
N/A
for
for
private
private
uint
N/A
case
case
foreach
N/A
protected
N/A
ulong
N/A
catch
catch
get
N/A
public
public
unchecked
N/A
char
char
goto
goto1
readonly
N/A
unsafe
N/A
checked
N/A
if
if
ref
N/A
ushort
N/A
class
class
implicit
N/A
return
return
using
import
const
const1
in
N/A
sbyte
byte
value
N/A
continue
continue
int
int
sealed
final
virtual
N/A
decimal
N/A
interface
interface
set
N/A
void
void
default
default
internal
protected
short
short
volatile
volatile
delegate
N/A
is
instanceof
sizeof
N/A
while
while
do
do
lock
synchronized
stackalloc
N/A
:
extends
double
double
long
long
static
static
:
implements
else
else
namespace
package
string
N/A
N/A
strictfp
enum
N/A
new
new
struct
N/A
N/A
throws
event
N/A
null
null
switch
switch
N/A
transient
提示: 虽然goto 和 const 是Java语言的关键字,但是它们基本上不用。