c#+和java的区别_C#和Java之间的主要区别是什么?

比较Java 7和C#3

(Java 7的一些功能在这里没有提及,但是使用语句的所有C#版本的优点超过Java 1-6已被删除。)

并非您的所有摘要都是正确的:

>在Java方法默认是虚拟的,但你可以使它们最终。 (在C#中,它们默认是封闭的,但你可以让它们是虚拟的。)

>有很多IDE的IDE,免费(如Eclipse,Netbeans)和商业(如IntelliJ IDEA)

除此之外(和你的摘要中已经有):

>泛型在两者之间是完全不同的; Java泛型只是一个编译时的“诡计”(但在那个时候是有用的)。在C#和.NET泛型中,在执行时也被维护,并且用于值类型以及引用类型,保持适当的效率(例如,List 作为byte []支持它,而不是嵌套字节数组。)

> C#没有检查异常

> Java不允许创建用户定义的值类型

> Java没有运算符和转换重载

> Java没有迭代器块来简单实现迭代器

> Java没有像LINQ这样的东西

>部分由于没有委托,Java没有什么非常像匿名方法和lambda表达式。匿名内部类通常填补这些角色,但笨重。

> Java没有表达式树

> C#没有匿名内部类

> C#根本没有Java的内部类,事实上,C#中的所有嵌套类都像Java的静态嵌套类

> Java没有静态类(没有任何实例构造函数,不能用于变量,参数等)

> Java没有任何等同于C#3.0匿名类型

> Java没有隐式类型的局部变量

> Java没有扩展方法

> Java没有对象和集合初始值表达式

>访问修饰符有些不同 – 在Java中(目前)没有直接对应于程序集,因此不知道“内部”可见性;在C#中没有等同于Java中的“默认”可见性,它考虑了命名空间(和继承)

> Java和C#中的初始化顺序是非常不同的(C#在对基本类型的构造函数的链接调用之前执行变量初始化器)

> Java没有作为语言一部分的属性;它们是get / set / is方法的约定

> Java没有相当于“不安全”的代码

> Interop在C#(和一般的.NET)比Java的JNI更容易

> Java和C#有一些不同的枚举概念。 Java更加面向对象。

> Java没有预处理指令(C#中的#define,#if等)。

> Java没有等价的C#的参考和输出通过引用传递参数

> Java没有等价的部分类型

> C#接口不能声明字段

> Java没有无符号整数类型

> Java对于十进制类型没有语言支持。 (java.math.BigDecimal提供像System.Decimal – 有差异,但没有语言支持)

> Java没有等价的可空值类型

> Java中的拳击使用预定义(但“正常”)引用类型,并对其进行特定操作。在C#和.NET中的装箱是更透明的事情,为CLR为任何值类型的装箱创建引用类型。

这不是详尽无遗,但它涵盖了我可以想到的一切。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值