在C ++之后学习Java的最佳方法是什么?

时间:2009-01-03 17:59:14

标签: java c++

我已经使用C ++大约6或7年了,我认为自己能够流利。到目前为止,我从未对Java感到困扰,但我发现自己失去了工作(公司陷入困境),我需要扩展我的技能。有人推荐Java,所以我想知道是否有任何关于像我这样的人可能会开始的建议。我也很想知道Java中最有可能出现的关键方面是什么。

7 个答案:

答案 0 :(得分:6)

当我们谈论Java时,我会想到一些受欢迎的领域

  • OOP的概念:我确信这与C ++没什么不同: 类,抽象类,接口, 多态性,覆盖, 重载,继承,静态 会员,...接口很可能会 您可能想要关注的区域。 由于这不是直接可用的 在C ++中,我不知道。
  • 核心Java :如基本语法和常见类等 as Math,String,System.out, 扫描仪,基本文件I / O,流。 了解垃圾的概念 集合,参考类型(自 指针在这里不可用。) 了解Java平台/技术, J2SE,J2EE。带Swing和的基本GUI 它的布局经理。卷筒纸 使用Servlet / JSP的应用程序。
  • 常用工具,框架和库:这可能不是 像上面的子弹一样重要。但 也许你应该知道什么是Eclipse, Netbeans,Spring,Struts,Hibernate, EJB,Ant,JUnit,JavaDoc,适用于。

您始终可以在Google中搜索“C ++ to Java”。我相信会有很多好的起点。不要忘记下次编写Java时不要将*放在var名称前面:)

答案 1 :(得分:3)

我建议您阅读本书Effective Java封面。您不仅会学到很多优秀的编程习惯,而且还会学到更多关于Java的知识。强烈推荐。 : - )

作为一个简单的例子,在Java中,不是手动滚动位域(这在Java中很难实现,并且有充分的理由),而是使用EnumSet代替。这在第32项中有记录。

顺便说一句,如果您不介意阅读PDF(无DRM)版本,它也比硬拷贝便宜:http://www.informit.com/title/0132345285

答案 2 :(得分:2)

有许多非常“深入”的Java书籍不仅可以教你Java,还可以教你最好的编程实践。

如果您只是对语法和类层次结构介绍感兴趣,那么 Java 24小时非常好。从那里开始,你就会知道自己去探索更多。

我强烈建议您考虑一个小项目来帮助您学习。事实上,想想一个极小的项目 - 它会比你想象的要大得多! ;)也许是一个简单的射击游戏或 Daleks - 或小行星 - 或类似的。

最重要的是:对于专家级程序员,不要试图从书中学习Java。你可以通过一本书来介绍Java,但是你必须自己学习(或者从另一本书学习)。这就像学习驾驶汽车一样 - 你可以从一本书中获得基础知识,但你需要探索和放大;尝试的东西,以及知道如何能够提供帮助的人。

有些事情会有所帮助:

  • 下载HTML Java文档并为其添加书签。你会经常参考它们。
  • 有一个小项目,一个简单的游戏或实用程序应用程序,你估计将需要几天时间来编写。花几个星期写它;)
  • 请注意,“Java”是3件事:
    • Java编程语言。像C ++或Lisp或Perl。
    • Java类层次结构。像STL或Cocoa。
    • Java运行时虚拟机,JVM。

人们使用“Java”这个词来表示所有这三件事,并且在没有太多注意的情况下在它们之间滑动,所以当你开始与人们谈论Java时要注意这一点。

祝你好运!

(让我们知道您的游戏何时可用:)

答案 3 :(得分:1)

C ++到Java转换的最大问题是它们非常相似 - 你会发现自己在做C ++ - 一段时间了。但这没什么大不了的:正如建议的那样,阅读Josh Bloch的书,并浏览java.sun.com上的教程,你会做得很好。

答案 4 :(得分:1)

在我看来,Java以三种方式将自己与C ++区分开来:

  1. 自动内存管理
  2. 简化语法(无预处理器)
  3. Java标准库
  4. 作为一名前C ++人,前两个应该不是问题。 (事实上​​,我打赌他们会让你觉得相当令人耳目一新。)为了适应这些图书馆,我推荐Bruce Eckel的Thinking in Java - 第3版可以免费下载。虽然最初的章节可能有点过于基础,但有关GUI编程,并发和各种容器类的部分将非常有用。

    除此之外,学习任何语言的最佳方法是阅读优秀的代码。

答案 5 :(得分:1)

我开始阅读当时的版本2的Java语言规范(2001)。 在我看来,它的规格很可读。

有效的Java是很好的建议。

Java Puzzlers非常适合学习角落案例和可能存在的陷阱。

答案 6 :(得分:1)

Peter Norton的Java编程指南,"Making the Transition from C/C++ to Java"