为经验丰富的C ++开发人员快速切换到Java

我正在寻找在线教程/书籍,它们充分了解OOP /设计模式概念,并强调C ++和Java之间的差异(概念和语法),从而允许后者的快速发展。 非常感谢您,感谢您的时间。

我在6年前从C ++转向Java,是Bloch使用的“Effective Java”,这是一本样式书,在50篇短文中解释了如何最好地使用各种java类和技术。 这非常类似于Meyers的“Effective C ++”和Sutter的“Exceptional C ++”。

如果您已经了解C ++和面向对象的编程并且可以阅读Java,那么这是编写高质量Java代码的最快方法。

现在有一个带有generics等的新版本。在我看来,这本书对于所有Java程序员以及想要学习Java的人来说都是必不可少的。

Java教程 。

它保持最新并且写得很好。 也可提供硬拷贝 。

我总是对“从X改为Y”指南持怀疑态度。 虽然他们之后可能会作为参考点提供帮助,但是从另一个人那里学习一门新语言可能比你想象的要快。

我认为学习新设计的语言非常重要,并且能够感受到这种语言中“正确”的方式并学习其代码习语。

对于想要了解Java潜在缺陷的有经验的程序员来说,这是一本好书,我推荐Effective Java 。

O’Reilly的“Head First”书籍写得非常好。 看看Head First Java和Head First Design Patterns。

避免首先使用Java。 信噪比低。 果壳很好但是变得很大,就像语言一样。

如果您是一位经验丰富的C ++开发人员,我建议您浏览Java Tutorial ( 如Gerd Klima所述 )。 然后,只需打开Java API文档,然后直接跳到脚。

当Java是新的时候,我在1996年左右进行了这种转换。 一本书肯定会有所帮助。 我使用了Laura Lemay的21天书 ,现在已经达到了第6版。我花了3天的时间来完成原始书,并且在我感觉自己完全熟悉之前的另一周。

习惯的事情:

  1. 语言不是很大,但是支持库是。 可能已经有了你想要的东西
  2. 垃圾收集和理智的内存管理非常棒。 与C ++相比,使用Java时我的错误数量急剧下降
  3. 垃圾收集和理智的内存管理很糟糕。 我正在编写性能关键应用程序(当时),我会杀死某人以获得类似于placement new或operator new overload的东西。
  4. 垃圾收集不是一般资源收集(即打开文件等)。 你仍然需要担心这一点。
  5. 我真的错过了一个集成的宏预处理器。 当然,您仍然可以使用一个,但随后您的构建变得更加复杂。

当我这样做时,我在一个果壳中使用了O’Reilly的Java 。 现在它似乎更像是“ 多式联运集装箱中的Java”,所以也许它不再那么快了。 我仍然期望它是体面的,我认为现在它是更多的参考资料。

在亚马逊上有几本书涵盖了“ Java for C ++ Programmers ”。

你肯定需要一本书,那里有很多。

除此之外,有一件事有用,恕我直言,是一个备忘单,你可以打印并放在你的显示器旁边。 当您学习东西时,您可以将它们添加到工作表中。

这是一对,特别是对C ++程序员: