从C#迁移到Java的提示?

时间:2009-01-23 00:36:43

标签: c# java

所以我下周将在Java的一个地方接受面试,并且不想让人觉得无能为力。我是一个非常自信的C#/ .NET开发人员,并且(显然!)愿意考虑跳转到Java - 我希望链接到人们会建议这样做的资源。我对以下问题的答案感兴趣:

  • 任何粗略等同于Justin Etheridge's Ruby for C# developers的指南?当我决定学习Ruby的rake(因此至少有一点Ruby)时,这非常有用。似乎有更多的页面供人们走另一条路,但是......
  • 使用哪个IDE?我实际上已经购买了自己的IntelliJ,因为我喜欢它的HTML / CSS / JS,但还没有触及它的实际存在理由,那就是“Java的东西”。但我怀疑我要使用Eclipse的地方。所以 - 建议在Mac或Windows上启动和运行的资源(我不挑剔)?
  • 这可能是TDD编码访谈;我想JUnit是在这里学到一点的事实上的选择吗?

提前致谢。

7 个答案:

答案 0 :(得分:8)

查看this link,其中详细说明了两种语言之间的许多差异。

对于IDE,许多人喜欢Eclipse或Netbeans(我最喜欢的) - 两者都是免费的。你已经拥有了IntelliJ,你可以试试。

FYO的一些主要区别是:

  • 缺乏属性/自动属性
  • 没有'事件'类型(处理事件的不同方式)
  • foreach循环语法
  • '泛型'实施
  • 已检查的例外

可能还有更多:)

答案 1 :(得分:4)

<强> IDE

你有IntelliJ。相信我是最好的。我用了两年,然后不得不改用一些免费的东西。我试过Eclipse,只是告诉你我的经历,这是一种痛苦,没有冒犯。现在,和Netbeans一起工作,我很高兴,但仍然会在一天内错过IntelliJ。

<强> TDD

是的,你对JUnit非常正确。在充分理解之后,很好地看看其他专门的库,比如HtmlUnit,DBUnit。此外,还有像Cobertura或Emma这样的代码覆盖工具。因为你必须使用IntelliJ,你可能想看看Emma,因为它与IDEA有很好的整合。

<强>过渡

我认为你不会在转型中遇到困难。 IMO,阅读文档和规范将让你前进。可能你可以去看一些书籍,但就核心Java而言,阅读API文档和规范将是一个良好的开端。您可以使用SO来提问。我见过许多问题,比如“Java中的C#等价物”。

答案 2 :(得分:3)

由于你只有一个星期,我会回应建议,专注于 Effective Java 指出的那些事情。

了解Collections API。当我采访人们时,这是我清除人们的一种方式。特别要了解equals()hashCode()compareTo()之间的区别,以及正确实施它们需要做些什么。

了解如何处理Java中的异常,以及它如何与标准EJB事务交互。

如果您有幸找到工作,我会花一些时间来了解J2EE领域,这是非常广阔的。这些天,我会认为J2EE的基础是EJB,MDB,servlet和JPA。

我不会太担心IDE或xUnit API。对于任何有经验的开发者来说,这些都是微不足道的。

答案 3 :(得分:2)

对于Java开发人员来说,Netbeans是最好的(也是最像视觉工作室)IDE。如果你有足够的RAM,你会喜欢它。

答案 4 :(得分:2)

如果你有一周 - 尝试尽可能多地编写Java代码。

我发现从Java到C#非常容易,它应该是相同的。

拿起一本Effective Java的副本并阅读它 - 确实非常好。

答案 5 :(得分:1)

正如您所提到的,对于IDE,您应该考虑Eclipse,它是免费的,是一个适合基本开发的IDE。但是,如果您要使用Java EE,可能还不够,但它可以帮助您快速学习基础知识。

有许多书籍涵盖了基本的语法和编程风格,而且假设你是一名优秀的C#开发人员,可能足以让你前进。我不知道你提到的任何类型的副手。

我最近做了相反的过渡,从Java到C#。我发现通过用新语言重写现有应用程序使它比我想象的要容易得多。

答案 6 :(得分:1)

我认为最大的不同是两个平台周围的社区和环境。在.NET世界中,微软做出重大决策并推出功能集。另一方面,Java世界中有许多第三方库几乎是对平台的补充,如果你正在进行某种开发,你应该知道它们。请参阅Most useful free Java libraries