简述C#和java的区别
从语法上将,C#和java非常的相似,只是在细节上有一些差别。实际上,C#语言和Java语言的主要差别不是在语言本身,而是在内部功能实现上以及性能上不一样。
Java程序需要一个运行环境JBE(Java Runtime Environment)来执行代码,但JRE只限于在Java这一门语言中使用。C#也需要一个运行环境CLR(Common Language Runtime),但是CLR提供了对支持.NET框架的所有语言的支持。
Java源代码可以被编译成字节代码的一种中中间状态,然后由以提供的虚拟机来执行这些字节代码。C#代码可以被编译成一种中间状态,称为中间语言(IL),但是IL代码则被传输到由CLR 管理的执行进程上,然后通过CLR的JIT编译器编译成本地代码执行。
C#语言和Java语言相比也有许多不同之处和改进的地方。例如,C#语言的文件名不受文件中类名的限制,而在Java语言中则有此限制。另外,C#语言也提供了一些在Java语言中没有的功能,如运算符重载、装箱和拆箱结构以及方法隐藏等。
运行环境:C#可在CLR的平台上运行,Java可在具有JVM的平台上运行
完全面向对象:C#和Java都是
多重继承:都不支持
内存管理:C#和Java使用垃圾回收机制管理内存
异常处理:都是try-catch-finally
指针:C#只能在非托管的代码内使用,Java不支持
类型安全性验证:都是强制类型验证
命名空间:C#和Java都支持
布尔值:C#和Java都只能为true或false
变量初始化:C#和Java都不能使用未初始化的变量
中间语言处理:C#将MSIL转变为JIT机器码,Java则是Java字节码
访问修饰符:C# public、protected、private、internal、partial。Java public、protected、 private、friendly
Web service:C#和Java都支持