【问题标题】:Java for Software Developers [closed]面向软件开发人员的 Java [关闭]
【发布时间】:2010-12-22 13:39:13
【问题描述】:

我是一名 .NET 开发人员(并且已经有一段时间了)。我为一个组织工作,该组织最近刚刚被一家主要开发语言为 Java 的大公司收购。 .NET 开发人员为数不多,但由于团队合并,.NET 与 Java 的比例大幅下降。

话虽如此,我已经决定开始 Java 开发对我来说是最好的选择。然而,到目前为止,我看到的大多数“学习 Java”的书籍都采用了非常基本的方法(什么是类、OOP 原则等)。我对这部分开发感到满意,不需要入门(除非存在如此深刻的差异,以至于有人从 Java 的角度推荐基础知识......)。

无论如何,我正在寻找一本从软件开发人员的角度讨论当今技术的 Java 开发书籍推荐。例如,MVC 架构、应用程序最佳实践(我是一名 Web 开发人员,这包括 Web 服务)、是否值得使用 JSP 或考虑使用 Ruby 等等。

一个巨大的好处是“边做边学”。像 Murachs 这样的东西,我可以从头到尾逐步完成一个项目,并且对基础知识足够了解,我不会感到无聊。我希望能够掌握足够的基础知识,为一些内部项目做志愿者并从中成长。

很抱歉,如果我的问题不必要地宽泛,但我正在努力寻找除了我的 Eclipse 安装之外的起点(我在 Ubuntu 上这样做,故意避开 Windows)。

感谢您提供的任何指导或见解。

编辑 - 在与同事讨论并阅读 Bert 的好建议(所有建议都非常好,非常感谢大家)之后,事实证明主要关注的是 EE 和 Glassfish。他们使用 NetBeans 进行开发,因为它与 Glassfish 紧密绑定。

这对我来说意义不大,只是我认为并行绘制的是 IIS/Web 应用程序与 Win32 应用程序。但也许这将有助于澄清我的 OP 中一些更开放的问题。

【问题讨论】:

标签: java development-environment


【解决方案1】:

Effective Java 乔什·布洛赫

它可能不是“边做边学”,而是深入探讨如何有效使用 Java 语言的细节。

然后我会用 Josh Bloch 和 Neal Gafter 的 Java Puzzlers 来补充它

【讨论】:

  • +1:这是每一位认真的 Java 开发人员都应该阅读的一本书。
  • 好主意,他会迷失在 Java 中。 Java 和 C# 不像 C++ 和 C,而是像 Ruby 和 CSS。他应该学习什么是类,OOP 原则等。
  • @01:他说他已经懂C#了,特意要了一些跳过基础知识点的材料。
【解决方案2】:

我最好的选择是根据您的要求学习 Spring:

MVC架构,应用最佳 实践(我是一名网络开发人员,这 包括网络服务),是吗 值得使用 JSP 或 考虑使用 Ruby,等等。

您可以通过 http://www.springsource.org/ 访问 SpringSource 开始

【讨论】:

  • 如果 OP 没有牢牢掌握初学者的“纯”Java,我会说 Spring 有点矫枉过正。
  • +1,除了可以是 Spring 或 EJB3,这取决于他是否要使用支持 EJB3 的应用程序服务器。
  • 他懂C#,你们真的不知道C#是什么吗?像Java++,应该知道什么是类,OOP原理等等。我用Java,过几天学C#。
  • @01,这就是他应该开始学习 Spring 的原因 :) 它希望您了解 OOP 以及什么是类;否则学起来会很困难
【解决方案3】:

我想对你说几点:

  • 基本的 Java 语言相当小而且是 C 语言。据我了解,C# 和 Java 在这里的工作方式几乎相同。
  • Java 运行时库非常非常大,与 C# 不同。很少有人了解所有 Java 6 运行时库。
  • Java 有几种常用的 IDE。你会想学习团队其他成员使用的那个。

我建议快速浏览一下 Oracle Java 教程,以掌握精神并做一些练习,然后查看 Internet 上常见的“Java for C#程序员”备忘单。然后做很多代码,然后阅读Effective Java。

(对于那些认为自己熟悉 Java 6 运行时的人,请考虑您是否熟悉 RMI、Rhino Javascript 引擎和 XSLT 实现中的 XPath 等)

【讨论】:

  • 好吧,我使用过 RMI,包括通过 IIOP 和 C++ 客户端(太可怕了!),编写了一个序列化对象解析器(序列化是 RMI 的一部分,对吗?),调试在 Rhino 中运行的 javascript通过解释器内部循环,我每天都使用 XPath。但是 XSLT ......该死,我知道我错过了什么!
  • @Tom,想解释一下您如何在 XSLT 之外使用 XPath?
  • ørn:javax.xml.xpath 中的类可以应用于 DOM 对象。就我而言,这是由 HtmlUnit 设置的,我们使用它来查询 HtmlUnit 已加载的网页,以进行测试 - 例如“断言只有一个元素匹配 //div[@id='shoppingCartInfo' ]"。
  • @Tom,感谢您的解释。我只在 XSLT 脚本中使用过 XPath,所以很高兴知道它也可以在其他地方使用。
【解决方案4】:

【讨论】:

  • 谢谢。 Java Puzzlers 这本书看起来很有趣。
【解决方案5】:

除非您在 JVM 上编写 JRuby,否则 Ruby 毫无意义。

如果您正在编写 Web 应用程序,则需要了解使用 JSTL(JSP 标准标记库)、servlet、HTML、CSS 和 JavaScript 编写的 JSP。从 Apache 下载 Tomcat - 它是一个 servlet/JSP 引擎,可让您在本地部署 Web 应用程序以进行学习。它内置了一个 HTTP 侦听器,因此您不需要 IIS 或 Apache。

您需要知道如何创建和部署 Web 存档 (WAR) 文件。这是一个包含 Web 应用程序标准格式的 ZIP 文件。

我想看看 Tomcat“第一个 Web 应用”文档来了解一下。

一旦你有了这些,就回来谈谈框架。 (当你这样做时,我会推荐 Spring。)

【讨论】:

  • +1 for Ruby 没有意义 :)
【解决方案6】:

这里有一些我喜欢的参考资料。我敢肯定有更好的,但有些我已经阅读并可以保证:

Java in a Nutshell是核心语言的经典总结。如果你需要更多,有像 Java for Programmers 这样的书籍供正在过渡到 Java 的程序员使用(我没有读过它)。

Sun's Core Servlets and JavaServer Pages 是一本关于 Java servlet 和 JSP 的好书。但是考虑到很多网络技术都是建立在此之上的(例如 Spring),所以这可能会给您提供基础,但不能直接了解您将使用的特定框架。如今,很多网络技术都是基于客户端/JavaScript/AJAX 的,例如jQuery.

对于 MVC,请考虑改为关注 MVP。我一直在玩 Google Web Toolkit 以利用我的 Java 背景来创建客户端应用程序,但这也是了解 MVP 的好方法 - 阅读 大规模应用程序开发和 MVP @987654325 @ 和 Part II,以及 GWT MVP Development with Activities and Places。但是,GWT 不断发展。

我的最后一个建议是缩小你的关注范围——试着弄清楚哪些框架在工作中很流行,然后决定你是否想关注一个层次:前端(例如 HTML/CSS/jQuery)、中间(例如 Spring)、或后端(例如休眠)。弄清楚这一点后,请发布更具体的问题(例如,学习 XYZ 的最佳资源是什么)。

【讨论】:

    【解决方案7】:

    仅根据我在 Java 方面的经验(有限,但我参加了 Web 开发课程教授 JSP)任何体面的技术通常都是第 3 方。但是,据我所知,在做 Web 开发时我会使用 Netbeans,Netbeans 内置了 Tomcat,特别是在 Ubuntu 中,以便于调试。

    【讨论】:

      【解决方案8】:

      您可以从这篇文章中找到更多类似行的答案

      https://stackoverflow.com/questions/3820437/life-after-head-first-java/3820449#3820449

      【讨论】:

        【解决方案9】:

        Java 领域非常广泛,您可能已经知道了。

        有数百种框架和工具可用于基本上做同样的事情。您可以查看由 Matt Raible 编写的 this presentation 来了解一下,他在其中比较了许多 Java Web 框架。

        正如其他人所建议的,您应该明确地了解一下 Spring 框架。它广泛用于企业界。有几本关于春天的好书。 如果你想以“教程化”的方式获得 Spring MVC 的基础知识,你可以看看这个book。它不包括最新的 Spring 版本(3.0),也不是一本“完美”的书,但它应该允许您在运行一些示例时获得基础知识。 此外,网络上有数以千计的 Spring-MVC 教程。 例如,您可以查看: http://www.adobocode.com/spring/a-spring-web-mvc-tutorial

        RESTful 服务现在也很流行。我一直在使用 JBoss 的 Resteasy 框架,我发现它很容易设置和使用。这个book 解释了 REST 架构并使用 Resteasy 作为示例框架。

        我还推荐了 O'Reilly 的“Head First Design Patterns”。它涵盖了使用 Java 的最重要的模式,它将帮助您了解该语言如何用于您可能已经熟悉的模式。

        还有一个建议:您可以考虑在Java TV 上“调整”。这是一个很好的资源,包含数百个 Java 教程视频。它涵盖了广泛的技术,因此您应该能够找到适合您的东西。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-09-24
          • 1970-01-01
          • 1970-01-01
          • 2010-10-07
          • 2010-10-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多