Java好书推荐 | Java编程之路必读系列
清明三天,感冒了三天,没什么力气,只能窝着读书了。花了一天时间读完了林锋兄的《分布式服务框架原理与实践》,林锋兄的这本书个人认为更偏理论介绍,需要有一定的基础,看完才有感觉。其中不乏有一些和我新书《亿级流量网站架构核心技术》中内容类似之处。实践过服务化的朋友可以读一读此书。
另一本书正在读的是陈斌老师翻译的《架构即未来》,买了很久,一直没时间读。这本书不仅仅介绍技术层面的可扩展,还有人员、组织、流程等更系统化的层面介绍,书中很多内容是我现阶段需要的,如果您需要从人员、组织、流程和技术方面系统化搭建可扩展性的企业,这本书非常适合您。
陈斌老师翻译的《架构即未来》的姊妹篇《架构真经:互联网技术架构的设计原则(原书第2版)》已经预售了。第一版《高扩展性网站的50条原则》在应用架构好书推荐 | 架构师之路必读系列中已经推荐过。
接下来我会推荐一些笔者学习Java读过的一些书籍。
入门与进阶
本书不仅介绍Java语法知识,而且通过大量案例研究、编程示例,着重讲授问题求解和编程技术,如循环设计技术、调试技巧、风格技术、抽象数据类型以及面向对象编程技术,包括UML、事件驱动编程以及使用类型参数的泛型编程等。本书不仅在每章中间安排了大量自测题,而且在每章末尾还给出了练题、编程实践和编程项目,帮助读者掌握和加深所学知识,是高等学校计算机及相关专业以Java为语言讲授计算机科学课程的理想教材。
从《计算机科学丛书:Java编程思想(第4版)》获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、JavaI/O系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的好教材和参考书。
系统全面讲解了Java 8的核心概念、语法、重要特性和开发方法,包含大量案例,实践性强。我入门时通读了卷1 卷2。
系统全面讲解Java 7语言的核心概念、语法、重要特性和开发方法。本书全面覆盖Java技术的高级主题,包括流与文件、XML、网络、数据库编程、国际化等,详细描述了图形与GUI编程,还涉及安全、远程方法、注解处理、本地方法等。本书对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量示例代码,能够帮助读者充分理解Java语言并灵活应用。
《Java编程风格(英汉对照)》是凝聚了业界众多专家集体智慧结晶的Java 编程风格指南,书中提供了一系列标准和规范,涉及多方面的约定,包括格式、命名、文档、程序和包,有助于编写易于理解、维护和扩展的Java 代码。
Java 8
本书全面介绍了Java 8 这个里程碑版本的新特性,包括Lambdas、流和函数式编程。有了函数式的编程特性,可以让代码更简洁,同时也能自动化地利用多核硬件。全书分四个部分:基础知识、函数式数据处理、高效Java 8 编程和超越Java 8,清晰明了地向读者展现了一幅Java 与时俱进的现代化画卷。
《写给大忙人看的Java SE 8》共分为9章。第1章讲述了lambda表达式的全部语法;第2章给出了流的完整概述;第3章给出了使用lambda表达式设计库的有效技巧;第4章介绍了JavaFX;第5章详细介绍了Java新增的日期/时间API;第6章介绍了原子计数器、并发哈希映射、并行数组操作等特性中的改进;第7章介绍了如何在Java虚拟机上执行JavaScript,以及如何与Java代码进行交互操作;第8章描述了Java 8中其他一些不起眼但很实用的特性;第9章则关注于Java 7中改进的异常处理,以及其他一些你可能会忽略掉的API。
Java并发系列
《Java并发编程实战》深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。
《Java并发编程的艺术》内容涵盖Java并发编程机制的底层实现原理、Java内存模型、Java并发编程基础、Java中的锁、并发容器和框架、原子类、并发工具类、线程池、Executor框架等主题,每个主题都做了深入的讲解,同时通过实例介绍了如何应用这些技术。
经典垂直系列
也有一些Java垂直领域经典书籍,但已经很古老了,已经买不到了,不过网上应该可以找到电子版。
《Java Collection》
《Java I/O 》
《Java NIO》
《Java Threads》
《Java Network Programming》
《Java脚本编程语言、框架与模式》
《Java加密与解密的艺术》
高效与谜题
《Effective Java中文版(第2版)》的内容包括:
全新的泛型、枚举、注解、自动装箱、fof-each循环、可变参数、并发机制,等等。
经典主题的全新技术和实践,包括对象.类、类库、方法和序列化。
如何避免Java编程语言中常被误解的细微之处:陷阱和缺陷。
重点关注Java语言本身和基本的类库及其扩展java.langjava.utiljava.util.concurrent和java.io。
在这本书里,Jim总结了他所认为的Java语言及其环境的诸多精良部分,包括:类型系统、异常处理、包机制、垃圾回收、Java虚拟机、Javadoc、集合、远程方法调用和并发机制。另外,他还从开发者的角度分析了在Java技术周围发展起来的“开发者生态环境”。如果要把Java技术精炼到只含有它的最佳部分,在Jim看来,以上这些就是必须保留的部分。
《Java解惑》特写了95个有关Java或其类库的陷阱和缺陷的谜题,其中大多数谜题都采用短程序的形式给出,这些程序的实际行为与表面上大相径庭。在每个谜题之后都给出了详细的解惑方案,这些解惑方案超越了对程序行为的简单解释,向读者展示了如何一劳永逸地避免底层的陷阱与缺陷。
《Java编码指南 编写安全可靠程序的75条建议》是《Java安全编码标准》一书的扩展,书中把那些不必列入Java安全编码标准但是同样会导致系统不可靠或不安全的Java编码实践整理了出来,并为这些糟糕的实践提供了相应的文档和警告,以及合规解决方案。读者可以将本书作为Java安全方面的工具书,根据自己的需要,找到自己感兴趣的规则进行阅读和理解,或者在实际开发中遇到安全问题时,根据书中列出的大致分类对规则进行索引和阅读,也可以通读全书的所有规则,系统地了解Java安全规则,增强对Java安全特性、语言使用、运行环境特性的理解。
Java规范
本书是Java语言新版本的规范,全书从Java基础的文法、类型、变量到高级特性lambda表达式、线程与锁等进行了详尽阐述。该规范针对每一项语言特性都给出了代表性的示例程序,以帮助读者更容易地理解和掌握这些特性。读者通过阅读本规范,可以全面系统地了解Java语言的各项特性,为充分利用这些特性来编写出更加高效简洁的Java程序提供帮助。读者还可以从Oracle的Java官方网站上看到本书的新进展和修订,以了解Java语言的新发展动向。
《Java核心技术系列:Java虚拟机规范(Java SE 8版)》完整而准确地阐释了Java虚拟机各方面的细节,围绕Java虚拟机整体架构、编译器、class文件格式、加载、链接与初始化、指令集等核心主题对Java虚拟机进行全面而深入的分析,深刻揭示Java虚拟机的工作原理。同时,书中不仅完整地讲述了由Java SE 8所引入的新特性,例如对包含默认实现代码的接口方法所做的调用,还讲述了为支持类型注解及方法参数注解而对class文件格式所做的扩展,并阐明了class文件中各属性的含义,以及字节码验证的规则。
JVM
《深入java虚拟机 原书第二版》
本书共分20章,第1-4章解释了Java虚拟机的体系结构,包括Java栈、堆、方法区、执行引擎等;第5-20章深入描述了Java技术的内部细节,包括垃圾收集、Java安全模型、Java的连接模型和动态扩展机制、class文件、运算及流程控制等等,其中第6章和附录A-C安全可以作为class文件和指令集的参考手册。本书还附带光盘,光盘中包含用以辅助说明正文内容的交互式例示applet及示例源代码。
太老了,只能网上找电子版了。
本书共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。第一部分从宏观的角度介绍了整个Java技术体系、Java和JVM的发展历程、模块化,以及JDK的编译,这对理解本书后面内容有重要帮助。第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理;常见虚拟机监控与故障处理工具的原理和使用方法。第三部分分析了虚拟机的执行子系统,包括类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎。第四部分讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测方法、HotSpot的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析JIT编译的数据和结果;第五部分探讨了Java实现高效并发的原理,包括JVM内存模型的结构和操作;原子性、可见性和有序性在Java内存模型中的体现;先行发生原则的规则和使用;线程在Java语言中的实现原理;虚拟机实现高效并发所做的一系列锁优化措施。
《Oracle JRockit: The Definitive Guide》
主要讲Oracke Jrockit虚拟机,暂无中文版,部分中文翻译:https://github.com/caoxudong/oracle_jrockit_the_definitive_guide/blob/master/contents.md
Java性能
本书对Java 7和Java 8中影响性能的因素展开了全面深入的介绍,讲解传统上影响应用性能的JVM特征,包括即时编译器、垃圾收集、语言特征等。内容包括:用G1垃圾收集器应用的吞吐量;使用Java飞行记录器查看性能细节,而不必借助专业的分析工具;堆内存与原生内存实践;线程与同步的性能,以及数据库性能实践等。
《Java性能优化专业指南》是Java应用性能调优的圣经,内容通俗易懂,介绍了大量的监控和测量工具,涉及各种硬件架构和操作系统。涵盖了如何构建实验、解释结果以及如何采取行动等技巧。
本书主要展示了如何在当今先进的多核硬件和复杂的操作系统环境下,系统且主动地提高Java 性能。本书对Charlie Hunt 和Binu John 的经典图书Java Performance 进行延伸,提供了两个前所未有的、强大的Java 平台创新细节:Garbage First(G1)垃圾收集器和HotSpot 虚拟机服务代理。阅读本书,你就可以在任何情况下从JDK8 或9 中发挥Java 的最大性能。
Java体系太庞大,下一次可以做下Java框架主题的图书推荐。
有些书建议读原版,比如Java核心技术,其内容深度一般,可以作为学习英文的一个方法~
好书推荐
应用架构好书推荐 | 架构师之路必读系列
我的新书,购买地址