我是.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中一些更开放的问题。
答案 0 :(得分:21)
Effective Java作者:Josh Bloch
它可能不是“边做边学”,但它会深入了解如何有效地使用Java语言。
然后我会用Josh Bloch和Neal Gafter的Java Puzzlers补充它。答案 1 :(得分:3)
我最好的选择是根据您的要求学习Spring:
访问SpringSource开始MVC架构,应用程序最佳 实践(我是一名网络开发人员,这个 包括网络服务),是吗? 值得使用JSP或 考虑Ruby等等。
答案 2 :(得分:2)
我想向您提出几点意见:
我建议您快速浏览Oracle Java教程,只是为了掌握精神并做一些练习,然后在互联网上查看常见的“Java for C#programmer”备忘单。然后做很多代码,然后阅读Effective Java。
(对于那些认为他们熟悉Java 6运行时的人,请考虑您是否熟悉RMI,Rhino Javascript引擎以及XSLT实现中的XPath以及其他所有内容)
答案 3 :(得分:1)
如果您正在编写Web应用程序,则需要了解使用JSTL(JSP标准标记库),servlet,HTML,CSS和JavaScript编写的JSP。从Apache下载Tomcat - 它是一个servlet / JSP引擎,可让您在本地部署Web应用程序以进行学习。它内置了一个HTTP侦听器,因此您不需要IIS或Apache。
您需要知道如何创建和部署Web存档(WAR)文件。这是一个包含Web应用程序标准格式的ZIP文件。
我会看看Tomcat的“第一个网络应用”文档来了解它。
有了这个,回过头来谈谈框架。 (当你这样做时,我会推荐Spring。)
答案 4 :(得分:1)
答案 5 :(得分:1)
以下是我喜欢的一些参考资料。我相信还有更好的,但有些我已阅读并可以保证:
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 Part I和Part II以及GWT MVP Development with Activities and Places。但是,GWT不断发展。
我的最后一个建议是你缩小你的注意力 - 尝试弄清楚哪些框架在工作中流行并决定你是否要专注于一个层:前面(例如HTML / CSS / jQuery),中间(例如Spring),或后端(例如Hibernate)。一旦你想出来,然后发布一个更具体的问题(例如,学习XYZ的最佳资源是什么)。
答案 6 :(得分:0)
仅仅是我对java的经历(有限但我参加了一个教学JSP的Web开发课程)任何体面的技术通常都是第三方。但是,根据我在使用Netbeans进行Web开发时的情况,Netbeans特别在Ubuntu中内置了Tomcat,以便于调试。
答案 7 :(得分:0)
有关类似专栏的更多内容,您可以从这篇文章中找到答案
https://stackoverflow.com/questions/3820437/life-after-head-first-java/3820449#3820449
答案 8 :(得分:0)
Java环境非常广泛,您可能已经想到了。
有数百种框架和工具可用于基本上做同样的事情。要想一个想法,你可以看一下Matt Raible编写的this presentation,在那里他比较了许多Java Web框架。
正如其他人所建议的,你应该明确地看一下Spring Framework。它广泛应用于企业界。有几本关于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教程视频的优秀资源。它涵盖了广泛的技术,因此您应该能够找到适合自己的东西。