从C#迁移到Java的提示?

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

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

提前致谢。

请查看此链接 ,其中详细介绍了两种语言之间的许多差异。

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

FYO的一些主要区别是:

  • 缺乏属性/自动属性
  • 没有’事件’类型(处理事件的不同方式)
  • foreach循环语法
  • ‘generics’的实施
  • 检查exception

可能还有更多:)

IDE

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

TDD

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

过渡

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

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

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

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

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

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

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

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

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

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

我认为最大的区别是两个平台周围的社区和环境。 在.NET世界中,微软做出重大决策并推出function集。 另一方面,Java世界中有许多第三方库几乎是对平台的补充,如果你正在进行某种开发,你应该知道它们。 查看最有用的免费Java库 。

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

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

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