通过一些基础性的教程入门后,我们可以使用Java做基础性的编程。然而,当我们需要从初级提升更高的一个层次时,大多数的人却不知道从何入手。一些好的书籍在这个阶段可以很好地帮助初级开发人员。
这本书介绍 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的详细解释。读完这本书,程序员应该能意识到使用Findbugs、Checkstyle这些工具的必要性了。
一年前我正努力在做 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的检查!
相关推荐
初级程序员的必修之道,如果把代码写的更简洁高效,看完了或许会有收获,无论你是学C的,还是JAVA等其他语言。都会有所收获
内容包含大量干货
java进阶之路,进阶目标,从初级程序员到中级,高级,经理,架构师,总监
初级进阶的参考资料,面试之前临阵磨枪,快速提高的工具,希望对大家有用
其次对于Java程序员来说技术才是最实用的,即使你的工作经验与招聘要求不相匹配,但如果技术掌握情况与之相匹配,阿里是不会“放过”你的,下面是小编在阿里招聘官网看到的招聘信息,可供大家参考。
实用的java私塾教材,从初级,中级到高级的java基础知识和进阶知识,一本不错的java程序员参考书
Java深度历险是让初级程序员进阶的好书,值得LOOK
JAVA基础编程练习题50题及经典算法90题+2021年Java高进进阶面试题【含源码及答案】适用于初级,中级+高级以及0基础入门级开发者
很全的程序员面试资料,JAVA、c++、c等等,适合找工作使用
五子棋游戏基于java环境工作,采用java相关技术进行五子棋游戏的开发(jdk模式即可),通过使用自适应算法实现游戏的主要和进阶功能。要求具有“布局设初始化、人机对战、难度选择、自适应AI难度管理、多步悔棋、...
如果对您有帮助,请给个Star,谢谢您! 文章分类 总的而言分为以下几大类,若有您感兴趣的内容,我将不胜荣幸: Java 后台中间件; 码头工人 Kubernetes 大数据 综合兴趣,例如LeetCode,树莓派,群晖系统等; ...
Web方面的高级程序员的进阶体系,包括初级程序员与高级程序员的差别对比、数据库实用知识点、JSP+Servlet+Javabean+DB开发框架、Struts框架、Spring IoC、Spring AOP、拦截器、Hibernate和Spring的整合方式等,最后...
作为一个Java开发人员,如果没有研究过Netty,那么你对Java语言的使用和理解仅仅停留在表面,会点SSH,写几个MVC,访问数据库和缓存,这些只是初级Java程序员干的事。如果你要进阶,想了解Java服务器的深层高阶知识...
java版商城源码下载 关于作者 微信公众号、头条号、CSDN账号都是程序员欣宸 前腾讯、前阿里员工,从事Java后台工作; 对Docker和Kubernetes充满热爱; 所有文章均为作者原创; 关于这个代码仓库 CSDN博客地址: 这个...
3.适用范围广,从零基础到高级架构以及分布式集群都涵盖,适用初级、高级、项目实战等多个层次开发者 4.多种维度辅助学习,采用独立solr粉丝群辅助教学,学员问题会及时得到解决,程序员突破圈 打卡制度,督促学员...
第三部分 进阶: C,C++代码阅读与控制 201 第9章 语法与初级标准库 202 9.1 C++的基于过程设计 203 9.2 C++的基于对象设计: 模板与设计 203 9.3 面向对象设计 204 9.4 泛型开发与初级StdC库 204 第10章 数据逻辑与...