C#和Java之间的主要区别是什么?

时间:2010-04-13 04:19:08

标签: c# java

  

可能重复:
  What are major differences between C# and Java?

我相信Eric Sink说“C#是Java完成的”。我对Java非常熟悉,并且认为我可以尝试学习一些C#。

据我了解,这两种OO语言非常相似,那么实际差异是什么(如果有的话)?

4 个答案:

答案 0 :(得分:8)

广泛用于商业和爱好的各种项目,我更喜欢围绕Java的扩展开源社区,但工具和(现在)围绕C#更快地语言推进。

Pro C#

Java在C#上开了5年,在此期间,它尝试了一些突破性的东西,并给了C#一些错误以便学习和采用一些最佳实践。你可以从内心深处感受到这在课堂图书馆设计中的不同之处,就像仿制药的实施方式一样,而且只是一般性的抛光。

当你向它添加这样一个事实时,C#每隔几年就会引入一系列功能强大,精心挑选且集成良好的语言功能(LINQ,闭包,类型推断,dynamic变量类型,通用支持共同和反向差异等),使用它确实是一种乐趣。

我真的很惊讶地发现自己这么说,但是你可以指望微软将一些最好的功能从Haskell,JavaScript和Python等各种语言直接引入C#。所有迹象都表明这种趋势仍在继续。

Pro Java

另一方面,Java建立一个社区周围有5年的领先优势(如果你考虑微软开始更多地公开做事需要多长时间,还有更长的时间)。这导致NUnit是JUnit的端口,NHibernate是Hibernate的端口,通常N *是J *的端口。

你通常最终会从每种语言的各个社区获得非常相似的令人难以置信的工具集,但是在Java存在之前,很多东西都存在(并因此已经成熟)。

摘要

两者都值得了解,并且从两者中可以学到很多东西。他们都拥有坚实的社区,对世界的看法略有不同。我建议了解两者并密切关注他们的未来。

答案 1 :(得分:3)

答案 2 :(得分:2)

我无法相信这还没有被提及......

Java运行在许多不同的设备上(Win,* nix,Mac,手机,pas等,包括x86,arm和一些操作码为字节码的嵌入式设备)

C#在1架构上运行1(如果你计算2k,xp,win7 beta和win7作为'不同',则运行4)os架构。

此时有人会提到单声道。单声道是一个错误;一个落后的远远落后于.net,MS并没有起诉任何人,但声称他们可以。它不完整,(永远不会)并且通常至少在主要版本上落后于真正的.net。

答案 3 :(得分:2)

Java运行在比C#(或.NET)

更多的平台上