代码之家  ›  专栏  ›  技术社区  ›  Dan Hook

了解C++,学习Java需要多长时间?[关闭]

  •  21
  • Dan Hook  · 技术社区  · 17 年前

    我是一个称职的C++开发人员。我了解并使用多态性、模板、STL,并且对流的工作方式有了很好的了解。出于所有实际目的,我没有进行Java开发。我相信你们中的一些人在学习Java的时候遇到了类似的情况。你需要多长时间才能成为一名称职的Java程序员?

    17 回复  |  直到 17 年前
        1
  •  19
  •   HelloGoodbye    8 年前

    我认为学习这门语言并不难。事实上,我曾经是一个专职的C++开发人员,在某些时候我开始编写Java代码。但问题是我不记得曾经学过Java,所以我猜我只是在思考。我已经做了很长时间的Java。

    如果你对C++非常熟悉,你可能想阅读一个主要差异列表(例如,一切都是动态绑定的),然后在环境中开始练习(只需下载Eclipse)。小的差异是你必须调整的主要因素。

    现在Java支持泛型,一个主要的切换痛苦消失了。如果您习惯使用接口,那么多重继承虽然不受支持,但并不是什么大问题,事实上,使用纯虚拟函数(pvfs)的接口而不是抽象类可以提高可读性。

    对我来说,Java是一个友好、轻松的沙箱版本的C++。我不必担心一般保护错误(GPF),我不必担心内存泄漏,也不必担心弄乱指针。但是,不要让这让你困惑,仍然有很多机会把事情搞得一团糟,有时甚至更难察觉。

    就这么跳吧。如果你有直觉,那就不成问题。

        2
  •  8
  •   JaredPar    17 年前

    我走了相反的路。从Java开始,然后移动到C和C++。根据我个人的经验,学习Java比C/C++(C++)要容易得多。

    Java在很多方面意味着C++,其中许多未定义的和不必要的复杂部分被删除或简化。嗯,这个目标很成功。因此,它是一种非常容易学习和使用的语言。特别是对于熟悉C++的人来说。

    实际需要的时间取决于学习语言的人。然而,我认为安全地说,在Java中胜任比在C++中要花更少的时间。

        3
  •  8
  •   CookieOfFortune    17 年前

    不应该太糟。语法和类应该非常容易掌握。有一些不同之处,但没有一个太具有挑战性。

    最困难的部分是更多地学习软件包,因为它们会有所不同。内置的Java类和函数,然后以实用的方式使用Java,您将需要学习J2EE或实际使用它的任何东西。后一部分可能比语言本身花费更多的时间。

        4
  •  4
  •   Bill the Lizard    17 年前

    如果你已经是一个称职的程序员(尤其是C++),那么Java就不需要长时间的学习了。我想向任何想学习Java的人推荐的书籍是:

    您可能会发现,通过您的经验,您可以更快地从头开始Java。出于这个原因,我建议你先从图书馆里查一下,然后在用Java进行思考之前浏览一下。

    同时查看Sun的 Java Tutorials .

        5
  •  4
  •   javashlook    17 年前

    正如汤姆·霍丁(TomHawtin)所写,关键问题是你如何定义胜任能力。

    你可以很容易地学会这门语言,但你必须学习的是成语和图书馆。而且,在您所从事的细分市场(如嵌入式或企业级)之间,以及在假定可以解决相同问题的库之间,存在相当多的差异。以下是几个例子:

    1. 在业务/企业应用程序中,通常使用数据库。在那里你可以有:

      • 普通JDBC
      • SQL映射器(IBatis),围绕冗长和重复的JDBC进行包装
      • ORM解决方案(Hibernate),具有自己的理念
    2. 使用桌面uis,您有两个相互竞争的平台:

      • 回转,JRE的一部分
      • 来自Eclipse基金会的SWT/JFACE,源于IBM,具有本地UI支持
    3. Web框架太多了,无法提及,在表示UI、配置、文件夹/包结构等方面有不同的想法。

    4. DI(依赖注入)在业务应用程序中很常见,无论是由第三方框架(如Spring)使用,还是作为EJB3标准的一部分使用。但是,我认为它从未用于嵌入式设置。

    公平地说,这只是冰山一角。

        6
  •  3
  •   MetroidFan2002    17 年前

    C++到Java:1周。 Java到C++:1个月。

        7
  •  2
  •   phihag    17 年前

    早在1995年,当我这么做的时候,我花了大约半天的时间来适应工具和基本的想法,花了一两天的时间来掌握语言,花了一周的时间来掌握语言中比较模糊的部分(当时它们的数量较少),花了一个月的时间去获取图书馆(那时它们的数量少得多)。

    现在,我想工具和基本语言将花费同样多的时间,对于语言中不明显的部分(取决于您点击了什么部分,以及何时点击),需要几周到一个月的时间。基础图书馆将是一个月到两个月( java.lang , java.util 以及其他一些)。剩下的类库6个月到永远取决于你需要学习的内容以及它们更新的频率:-)

        8
  •  1
  •   Robert Gould    17 年前

    我知道C++,而且必须和Java一起工作,2周后就可以把它取出来。当然有很多惊喜,但很容易。

        9
  •  1
  •   Jack Leow    17 年前

    我要用六到八个星期。

        10
  •  0
  •   Eskat0n    17 年前

    我认为术语“有能力的Java程序员”有两种方法。 如果是关于词汇、语法和OOP的术语,我在2(2)天的学习之前就开始完全理解Java。 但首先,你会被不可能射中自己的腿迷住; 但是,如果是嵌入式类系统(即包)、API引用、提示和技巧等,则需要大约半年的时间来感觉自己对Java友好。我想。

        11
  •  0
  •   aJ.    17 年前

    我也学习了C++和Java。因为我已经熟悉了OOPS概念,所以花的时间非常少。在学习的最初阶段,我对Jave中类似垃圾收集器的新概念非常满意。我提到过 The Complete Reference 赫伯特·席尔特写的,它确实帮助我很快地掌握了语法。

        12
  •  0
  •   ya23 devoured elysium    17 年前

    我有C++背景。拿起Java花了我几天时间-语言看起来很简单-至少它的基础。我仍然相当多地咨询我的Java大师——谷歌,但它通常是探索API和标准库的问题。Java有一些烦恼,但是你应该很快地发现它们中的大多数。

    我被推荐了 Thinking in Java (有一本电子书是免费的),但从来没有坚持读过。我不打算用Java编写火箭科学代码,要做到这一点,我的技能就足够了。

    说了这句话,对这门语言有更好的正式了解是件好事。目前我正在考虑为 SCJP 这似乎是一种明智的学习方式,而且一旦通过编程证书,您将得到很好的重新编码(我听说它不太值钱,但仍然可能是一个动机…)。

    你也可以试试 Java Black Belt -答案总是让我吃惊。在做了几次测试之后,我想知道我的程序是如何编译的,这表明我可能不是最有能力的Java程序员:

        13
  •  0
  •   Tom Hawtin - tackline    17 年前

    你如何定义胜任?对于我的钱,最专业的人(就像他们为了钱一样),Java程序员永远无法胜任。

        14
  •  0
  •   mmmmmmmm    17 年前

    我从C++开始,学习了C./.NET。没过多久。 由于C .y/.net非常接近Java(他们使用了许多Java的基本技术,如GC、引用类、JIT……),所以我认为学习Java并不难。

        15
  •  0
  •   nimrodm    17 年前

    如今,编程语言的大部分功能都来自于它的库和公认的习惯用法。

    虽然学习Java语言需要相对短的时间,但是有效地使用可用的库(集合、IO等)可能会花费更多的时间。

        16
  •  0
  •   Kire Haglin    17 年前

    学习这门语言的时间不应该超过一两天,但你可能需要花几个星期的时间在类库上:如何使用集合、并发包、反射、日志记录、Swing/awt、动态代理、MBeans等。

        17
  •  0
  •   www.tomshardware.com    12 年前

    我在15岁的时候就学会了C++,成为一名专业的软件程序员。但是当我找工作的时候,只有Java开发者才有工作。我认为很难改变我的语言。所以,为了试用,我下载了Java编译器,只是为了好玩,输入了一些代码,我发现它和C++没有太大的不同。只有经过6小时的研究和学习,我才成为Java开发人员。因此,在C++与Java之间切换非常容易。