1.Java不用goto语句。在C#中,goto允许你转到指定的标签,不过,C#对goto并不提倡。
2.与Java不同的是,C#允许为名称空间或者名称空间中的类指定别名: using TheConsole = System.Console;
3.在Java中,switch语句只能处理整数。但C#中的switch语句不同,它还能够处理字符变量。请考虑下面用switch语句处理字符串变量的C#代码
4.C#中的访问修饰符与Java中的基本对应,即C#有5种类型的可访问性。而比JAVA多出了一个internal。
5.由于C#中不存在final关键词,如果想要某个类不再被派生,可以使用sealed关键词。
6.与Java不同,C#中的接口不能包含Field。
7.在Java中,接口方法声明可以带public修饰符(并非必要)多出了一个internal。但于C#中,显式为接口的方法指定public修饰符是非法的。
8.在Java中没有与C#中的as操作符等价的操作符。
9.C#仍旧保留了C++的内存手工管理方法,它适合在速度极端重要的场合使用,而在Java中这是不允许的 。
10.C#的枚举器即enum类型,但在java中没有。
11.C#是编译型的,Java是解释型的。
12.基于MSIL的程序优于解释型的Java字节码。Java的字节码和MSIL码都是的类似汇编的中间语言,在运行时执行这些中间码。
13.对于C#开发人员来说,最突出的是对COM的无损整合,COM是Win32的组件技术。
14.平台上区别,即J2EE与.Net平台之间的区别。