我是一名称职的C++开发人员.我理解并使用多态,模板,STL,我对流的工作方式有了扎实的把握.出于所有实际目的,我没有完成Java开发.我肯定你们有些人在必须学习Java的时候处于类似的情况.你成为一名称职的Java程序员需要多长时间?
我认为学习语言并不困难.事实上,我曾经是一名全职C++开发人员,在某些时候我开始编写Java代码.但事情是,我不记得曾经学过Java,所以我想我就像去了一样.我已经做了很长时间的Java全职工作了.
如果您熟悉C++,您可能需要阅读主要差异列表(例如,所有内容都是动态绑定的),然后开始在环境中练习(只需下载Eclipse).小差异是你需要调整的主要因素.
既然Java支持泛型,那么主要的切换难点之一就消失了.如果你习惯了接口,那么多次继承虽然不受支持,但并不是什么大问题,事实上,拥有接口而不是带有纯虚函数(PVF)的抽象类可以提高可读性.
对我来说,Java是一个友好而友好且轻松的沙盒版C++.我不必担心一般保护错误(GPF),我不必担心内存泄漏,我不必担心搞乱指针.但是,不要让这让你感到困惑,仍然有很多机会搞砸王室,而且有时甚至更难以发现.
快步走吧.如果你有直觉,那应该不是问题.
不应该太糟糕.语法和类应该很容易掌握.存在一些差异,但没有一个太具有挑战性.
最难的部分更多是学习包,因为那些将是不同的.内置的Java类和函数,然后以实用的方式使用Java,您将需要学习J2EE或实际使用它的任何东西.后一部分可能比语言本身花费更多的时间.
我走了相反的道路.从Java开始,然后转到C和C++.根据我自己的个人经验,学习Java要比C/C++(尤其是C++)容易得多.
Java在许多方面都是C++,其中许多未定义和不必要的复杂部分被删除或简化.恕我直言,它在这个目标上取得了巨大成功.因此,它是一种非常容易学习和使用的语言.特别是对熟悉C++的人.
它将花费的实际时间非常依赖于学习语言的人.但是,我认为可以肯定地说,在Java中胜任的能力比在C++中要少.
如果您已经是一位能干的程序员(尤其是C ++),那么Java很快就不需要学习。对于那些想学习Java的人,我建议(按顺序)推荐的书是:
头先Java
用Java思考
有效的Java
根据您的经验,您可能会发现您很快就可以通过Head First Java进行浏览。因此,我建议您将其从库中检出并略读一下,然后再继续进行Java思维。
还可以查看Sun的Java教程。