Q:我是一名称职的 C++ 开发人员。我理解并使用多态性、模板、STL,并且我对流的工作原理有深刻的了解。出于所有实际目的,我没有做过 Java 开发。我敢肯定,你们中的一些人在必须学习 Java 时曾遇到过类似的情况。你花了多长时间成为一名合格的 Java 程序员?
A:我认为学习语言并不难。事实上,我曾经是一名全职的 C++ 开发人员,在某个时候我开始编写 Java 代码。但问题是我不记得曾经学习过 Java,所以我想我只是边走边想。我已经做了很长时间的全职 Java。
如果您非常熟悉 C++,您可能希望阅读主要差异的列表(例如,一切都是动态绑定的),然后开始在环境中练习(只需下载 Eclipse)。细微的差异是您必须适应的主要因素。
既然 Java 支持泛型,主要的切换难题之一就消失了。多重继承虽然不受支持,但如果您习惯了接口,那就没什么大不了的,事实上,拥有接口而不是具有纯虚函数 (PVF) 的抽象类可以提高可读性。对我来说,Java 是 C++ 的一个很好、友好和轻松的沙盒版本。我不必担心一般保护错误 (GPF),我不必担心内存泄漏,我不必担心弄乱指针。但是,不要让这让您感到困惑,仍然有很多机会可以彻底搞砸,有时甚至更难发现。只管飞跃。如果你有本能,这应该不是问题。
A:应该不会太差。语法和类应该很容易让你掌握。有一些差异,但都不是太具有挑战性。最难的部分更多是关于学习软件包,因为它们会有所不同。内置的 Java 类和函数,然后以实用的方式使用 Java,您需要学习 J2EE 或任何您可能实际使用它的东西。后一部分可能会比语言本身花费更多的时间。
A:我走了相反的路。从 Java 开始,然后转向 C 和 C++。就我个人的经验而言,学习 Java 比 C/C++(尤其是 C++)容易得多。Java 在很多方面都意味着 C++,删除或简化了许多未定义和不必要的复杂部分。恕我直言,它在这个目标上取得了巨大的成功。因此,它是一种非常容易学习和使用的语言。特别是对于熟悉 C++ 的人。
实际需要的时间很大程度上取决于学习语言的人。但是,我认为可以肯定地说,与 C++ 相比,掌握 Java 所需的时间更少。
A:如果您已经是一名称职的程序员(尤其是在 C++ 方面),那么学习 Java 根本不需要很长时间。我会(按顺序)向任何想要学习 Java 的人推荐的书籍是:
《头先Java》:http://oreilly.com/catalog/9780596004651/
《用Java思考》:http://www.mindview.net/Books/TIJ/
《有效的Java 》:http://java.sun.com/docs/books/effective/
根据您的经验,您可能会发现自己很快就完成了 Head First Java。出于这个原因,我建议您在继续使用 Thinking in Java 之前从库中查看并浏览它。
另请查看 Sun 的Java 教程: http://java.sun.com/docs/books/tutorial/。