推荐给初级Java程序员的3本进阶书

ImportNew 注: 原作者在这篇文章中介绍3本不错的技术书籍。作者认为这些书籍对新手或者学生而言尤其有帮助。通过一些基础性的教程入门后,我们可以使用Java做基础性的编程。然而,当我们需要从初级提升更高的一个层次时,大多数的人却不知道从何入手。一些好的书籍在这个阶段可以很好地帮助初级开发人员。

Head first Design Patterns

Head First设计模式

这本书介绍 GoF 常用设计模式的方式引人入胜。如果只看封面很难看出来这是一本技术书籍,更不用说这本技术书籍介绍的还是面向对象编程的一些很有用的技巧。这本书采用 Kathy Sierra 式编写风格:虽然她的博客已经关了,但是还是能从前面这个链接看到一些她的文章,建议读一读。如果你周围有人认为设计模式没有什么用处,这本书倒是能够让他们改变看法。个人而言,我认为经典的 GoF 手册是一个很好的参考,但它并不是专为新手准备的。因此强烈推荐在校生(包括那些不清楚组合模式是什么的程序员们)阅读此书。

书中介绍的设计模式是程序开发中比较基本的编程模式,也是面向对象编程的程序员应该了解和掌握的。接下来要介绍的这本书则更偏向于Java语言本身,这也是我日常使用的编程语言。

Effective Java, 2nd Edition

Effective Java中文版》第二版

每个Java程序员的书桌上都应该放有这本书。让我们先了解下作者:

Joshua Bloch是Google公司的首席Java设计师,并且也是一位Jolt 奖获得者。他之前是Sun的一位杰出工程师(distinguished engineer),也是Transarc公司的一个资深系统设计师。Bloch主导了众多基于Java平台的软件系统的设计和实现,包括JDK5.0的功能加强以及获得过奖项的Java集合框架的设计实现。他同时也参与编写了《Java解惑 | Java Puzzlers》 和《Java并发编程实战 | Java Concurrency in Practice》这两本技术书。

就凭“Java集合框架开发者”这个称号,我们就应该认真听取这位值得尊敬的程序员的建议。这些建议在这本书中组织成78个点:读者可以按照自己的速度进行阅读。

  • 在复写equals和hashcode方法时,我们应该遵循什么规则?
  • 不可变类(immutable class)是什么?
  • 在特定的情况下,应当选用哪种最相关的异常类型?运行时异常(Runtime exception)还是可捕获异常(checked exception)?
  • 对于一个托管语言(managed language,详细请参考 wiki介绍),如何在混淆编译时保留(preserve)类的成员?

上面所有的问题(也包括其他74个)都有实用主义者Joshua Bloch的详细解释。读完这本书,程序员应该能意识到使用FindbugsCheckstyle这些工具的必要性了。

 Java concurrency in Practice

Java并发编程实战

 一年前我正努力在做 UI 开发工作时(在Eclipse 插件中使用SWT/JFace,其他一些项目则使用Swing ),就看了这本书。那时,我想了解如何实现一个快速响应的UI,从而能给用户更好的使用体验。我知道自己写线程安全的代码是非常复杂的,尽管运行时间长的操作通常是一个独立的线程。UI开发和多核系统应用开发是学习如何开发线程安全的软件系统的一个很好的理由。

这本书的作者如下:Brian Goetz,Joshua Bloch(又出现这位大牛了,我们刚提到过,还记得吗?), Doug Lea(java.util.concurrent包的开发者), David Holmes,Tim Peierls 和Joseph Bowbeer

这本书的风格非常直接,有的代码在非线程安全的环境下表现不错,可一旦到了线程安全的环境下就变得十分的危险。接着,这本书介绍了基本的保证线程安全的机制:同步机制,volatile关键字等。本书还有对java.util.concurrent接口的介绍,你可以根据自己的需要来选择适合的并发集合类。这本书也介绍了程序运行时的错误管理,以及如何测试代码是否是线程安全的。而且书中还提供了说明性的注释(Annotation)(下载),这些注释通过了FindBugs的检查!

 

还有其它推荐吗?

其实还有不少书值得推荐,不过现在我优先讨论这三本。如果你一本都还从没读过,那么我建议你按照本文介绍顺序进行阅读。好啦,你喜欢的技术书籍有哪些呢?

 

英文原文:coderfriendly,编译:ImportNew - 郑雯

译文链接: http://www.importnew.com/692.html

【如需转载,请在正文中标注并保留原文链接、译文链接和译者等信息,谢谢合作!】

 

关于作者: 郑雯

2009年北航计算机学院毕业,加入IBM CDL至今。从事过web产品测试及开发工作。目前兴趣主要在游泳和自助穷游上。

查看郑雯的更多文章 >>



相关文章

发表评论

Comment form

(*) 表示必填项

22 条评论

  1. Lei 说道:

    我倒是觉得Effective Java在初级阶段不一定能完全理解,还是要有一定基础之后再看比较合适

    Thumb up 1 Thumb down 0

  2. 雍京川 说道:

    翻译人是校友 学姐好

    Thumb up 1 Thumb down 0

  3. 雍京川 说道:

    我明年才毕业 计算机科学 现在已经工作了 Java工程师 嘿嘿

    Thumb up 1 Thumb down 0

  4. muyimee 说道:

    Head First设计模式 是一本不错的书。和其他计算机书籍差别大,有特点。主要是通俗易懂。

    Thumb up 2 Thumb down 0

  5. sarah 说道:

    java并发编程实践确实不错
    但对于初学者 尤其接触多线程编程没多久的人来说 多少有些晦涩和抽象
    当然很多基础知识打牢 看这本还是很醍醐灌顶的。
    java多线程设计模式详解 这本书很形象 只不过只有译本版本较老

    Thumb up 1 Thumb down 0

    • ado1986 说道:

      深有同感。买了本《java并发编程实践》,读起来感觉不错,但是可能是多线程经验不够,理解得不够深入。

      Thumb up 1 Thumb down 0

  6. 彭天 说道:

    都没有读过,准备买回来研究研究

    Thumb up 1 Thumb down 0

  7. 黄泉hj 说道:

    求Android书籍推荐

    Thumb up 1 Thumb down 0

  8. D瓜哥 说道:

    俺推荐一本:《大话设计模式》(程杰著,清华大学出版)。讲解的非常通俗易懂,强烈推荐。
    不过,对于Java程序猿来说,美中不足的是使用C#来实现。

    Thumb up 1 Thumb down 0

  9. 咸鱼 说道:

    怎么并发实战那本书推荐的是英文原版,链到亚马逊后是翻译过的中文,购买后才发现原来翻译的中文简直就是垃圾

    Thumb up 1 Thumb down 0

  10. 曹旭东 说道:

    《effetctive java》作为初学者进阶有点早

    Thumb up 1 Thumb down 0

  11. jacky 说道:

    并发实战那本书翻译的质量很糟糕,前面两本书的翻译质量很不错,令人可以接受。并发实战那本书完全白瞎了

    Thumb up 1 Thumb down 0

  12. ssugar 说道:

    那些说人翻译垃圾的自己去翻译呗,能看的懂英文这么牛b还看什么中文

    Thumb up 2 Thumb down 0

    • 黄余粮 说道:

      最友好的方式是: 发现翻译不好的地方,直接指出来让译者考虑改进。

      Thumb up 1 Thumb down 0

  13. peng bo 说道:

    Thinking in Java

    Thumb up 0 Thumb down 0

  14. 王骞 说道:

    代码大全》适合所有编程语言

    Thumb up 0 Thumb down 0

  15. zhengrenhui 说道:

    想看英文原文,但好些都打开不了。

    Thumb up 0 Thumb down 0

  16. 高茹 说道:

    我是一个初级java程序员,想更多地了解java,所以想找些关于初级程序员可以读的书

    Thumb up 0 Thumb down 0

  17. 安卓杂谈 说道:

    三本不错的书..赞赞赞

    Thumb up 0 Thumb down 0

跳到底部
返回顶部