6

可能重复:
C# 和 Java 之间的主要区别是什么?

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

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

4

4 回答 4

8

在将两者广泛用于商业和业余爱好的各种项目之后,我更喜欢围绕 Java 的广泛的开源社区,但工具和(这些天)围绕 C# 更快的语言进步。

专业 C#

Java 在 C# 上领先了 5 年,在此期间它尝试了许多开创性的东西,并为 C# 提供了一些可供学习的错误和一些可供采用的最佳实践。您可以从本能地感受到这在类库设计、泛型的实现方式以及总体润色方面所带来的不同。

再加上 C# 每隔几年就会引入一系列强大、精心挑选和良好集成的语言特性(LINQ、闭包、类型推断、dynamic变量类型、对协变和反变的泛型支持)这一事实等),它真的很容易使用。

我真的很惊讶自己会这么说,但你可以指望微软将一些来自 Haskell、JavaScript 和 Python 等多种语言的最佳特性直接引入 C#。所有迹象都表明这一趋势仍在继续。

专业 Java

另一方面,Java 在围绕它建立社区方面有 5 年的领先优势(如果您考虑到 Microsoft 花了多长时间才开始更公开地做事,那么还会有更多的时间)。这就引出了这样一个事实,即 NUnit 是 JUnit 的一个端口,NHibernate 是 Hibernate 的一个端口,一般来说 N* 是 J* 的一个端口。

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

概括

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

于 2010-04-13T04:39:27.620 回答
3

看一下

Java 和 C Sharp 的比较

Java 与 C#/.NET

于 2010-04-13T04:21:22.323 回答
3

我不敢相信这还没有被提及...

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

C# 在 1 个架构上运行(如果将 2k、xp、win7 beta 和 win7 算作“不同”,则为 4 个)操作系统。

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

于 2010-04-13T04:52:25.760 回答
2

Java 在比 C#(或 .NET)更多的平台上运行

于 2010-04-13T04:53:05.753 回答