微软 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语言的关键字,但是它们基本上不用。    
 
  |