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

Head
First设计模式

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

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

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并发编程实战

一年前我正努力在做 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

推荐给初级Java程序员的3本进阶书的更多相关文章

  1. 【转】推荐给初级Java程序员的3本进阶书

    ImportNew 注: 原作者在这篇文章中介绍3本不错的技术书籍.作者认为这些书籍对新手或者学生而言尤其有帮助.通过一些基础性的教程入门后,我们可以使用Java做基础性的编程.然而,当我们需要从初级 ...

  2. (转)【推荐】初级.NET程序员,你必须知道的EF知识和经验

    转自:http://www.cnblogs.com/zhaopei/p/5721789.html [推荐]初级.NET程序员,你必须知道的EF知识和经验   阅读目录   [本文已下咒.先顶后看,会涨 ...

  3. 问题集录--从初级java程序员到架构师,从小工到专家

    怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到的问题.希 ...

  4. 【推荐】初级.NET程序员,你必须知道的EF知识和经验

    阅读目录   推荐MiniProfiler插件 数据准备 foreach循环的陷进 AutoMapper工具 联表查询统计 性能提升之AsNonUnicode 性能提升之AsNoTracking 多字 ...

  5. 初级java程序员-各公司技能要求

    熟悉tomcat部署和性能调试,开发常用linux 命令,有性能调优(tomcat,sql等)经验优先: 熟练使用SSH.springmvc.mybatis.Hibernate.jquery等框架,了 ...

  6. JAVA程序员必看的15本书-JAVA自学书籍推荐

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  7. 推荐给 Java 程序员的 7 本书

    < Java 编程思想> 适合各个阶段 Java 程序员的必备读物.书中对 Java 进行了详尽的介绍,与其它语言做了对比,解释了 Java 很多特性出现的原因和解决的问题.初学者可以通过 ...

  8. 这里有一份Java程序员的珍藏书单,请您注意查收

    前言 不要因为迷茫,而停止了脚下前进的路.给大家推荐一份Java程序员必看的书单,豆瓣评分都挺不错的,每一本都值得去读,都值得去收藏,加油呀 本文已经收录到github https://github. ...

  9. 2017年 Java 程序员,风光背后的危机

    不得不承认,经历过行业的飞速发展期,互联网的整体发展趋于平稳.为什么这么说?为什么要放在 Java 程序员的盘点下说? 的确,对于进可攻前端,后可守后端大本营的 Java 程序员而言,虽然供应逐年上涨 ...

  10. Java程序员如何在竞争中保持优势

    Java程序员入门容易,进阶很难,想要在竞争中保持优势,脚踏实地的同时也要仰望星空规划自己的未来.时间在流逝,年龄在增加,你期望的薪水也在不断增多,你总得让自己能力持续增加以配得上想要的收入吧. 从初 ...

随机推荐

  1. 使用 nuxi generate 进行预渲染和部署

    title: 使用 nuxi generate 进行预渲染和部署 date: 2024/9/4 updated: 2024/9/4 author: cmdragon excerpt: 通过 nuxi ...

  2. SQL Server磁盘空间清理 【转】

    SQL Server在删除数据后,会重新利用这部分空间,所以如果不是空间紧张的情况下,可以不回收.回收一般先回收日志文件,因为这个回收速度非常快,可以短时间内清理出一部分可用空间.回收步骤: 1.查看 ...

  3. R-Adapter:零样本模型微调新突破,提升鲁棒性与泛化能力 | ECCV 2024

    大规模图像-文本预训练模型实现了零样本分类,并在不同数据分布下提供了一致的准确性.然而,这些模型在下游任务中通常需要微调优化,这会降低对于超出分布范围的数据的泛化能力,并需要大量的计算资源.论文提出新 ...

  4. 最小化安装killall不可用

    最小化安装killall不可用 最小化安装Centos7.4后,发现killall命令不可用 使用了以下命令,查看软件包名: yum search killall 查找后发现应使用这个安装包 yum ...

  5. SQL Server – Work with JSON

    前言 JSON 是一个很好的格式, array, object 就能表达一个表格了. 如果想保存一些结构格式, 又不想用表格这么大费周章的话, JSON 会是很好选择. 比如我用它来记入 Audit ...

  6. SpringBoot+Docker +Nginx 部署前后端项目

    部署SpringBoot项目(通关版) 一.概述 使用 java -jar 命令直接部署项目的JAR包和使用Docker制作镜像进行部署是两种常见的部署方式.以下是对这两种方式的概述和简要的优劣势分析 ...

  7. SpringBoot项目使用yml文件链接数据库异常

    SpringBoot使用properties连接数据库时没有出现问题 SpringBoot使用yml连接数据库时出现:Unable to connect to Redis 并在报错信息中出现: 发现是 ...

  8. vue3中没有 this 环境变量了

    因为 api setup 在 beforecreate 之前执行,所以 this 是 undefined : setup 不能是一个 async 函数 ,因为返回值不是 对象了 ,而是 promise ...

  9. 2024年开源API工具盘点,覆盖API全生命周期

    2024年经济持续低迷,本文整理一些免费的开源工具,旨在帮助企业组织降低工具的支出成本,能用免费的何必用付费的呢(狗头)? 如何高效地管理API的全生命周期--从设计.开发.测试.部署到监控和优化,已 ...

  10. [图像处理] 基于CleanVision库清洗图像数据集

    CleanVision是一个开源的Python库,旨在帮助用户自动检测图像数据集中可能影响机器学习项目的常见问题.该库被设计为计算机视觉项目的初步工具,以便在应用机器学习之前发现并解决数据集中的问题. ...