如何学习《深入理解Java虚拟机》,深入理解java虚拟机( 三 )


这三宝分别是:* 黑宝书《数据结构与算法分析java语言描述》mark allen weiss* 蓝宝书《java数据结构和算法》robert lafore* 红宝书《算法》robert sedgewick黑宝书胜在公式推理和证明以及算法的简洁和精炼,此外习题较多 。蓝宝书胜在对算法的深入浅出的讲解,演示和举例,让艰涩的理论变得很容易理解 。
红宝书胜在系出名门斯坦福,演示通俗易懂,内容丰富 。有了这三宝,算法不用愁,学完以后再看《算法导论》就容易多了 。本书从讲解什么是数据结构开始,延伸至高级数据结构和算法分析,强调数据结构和问题求解技术 。本书的目的是从抽象思维和问题求解的观点提供对数据结构的实用介绍,试图包含有关数据结构、算法分析及其Java实现的所有重要的细节中级书单《重构:改善既有代码的设计》重构,绝对是写程序过程中最重要的事之一 。
在写程序之前我们不可能事先了解所有的需求,设计肯定会有考虑不周的地方,而且随着项目需求的修改,也有可能原来的设计已经被改得面目全非了 。更何况,我们很少有机会从头到尾完成一个项目,基本上都是接手别人的代码,我们要做的是重构,从小范围的重构开始 。重构是设计,设计是art,重构也是art. 一个函数三行只是语不惊人死不休的说法,是对成百上千行代码的矫枉过正 。
更一个般的看法是一个函数应该写在一页纸内 。《Effective Java》这样一本书本该早就读了,然而最近才看完 。看完觉得对于一些编程规则深层的原理有了一些认识 。之前我只是知道这些口口相传的规则,却不知道为什么,在这本书中找到了一些答案 。书中涉及到了java编程方方面面的规则,包括类、接口、创建对象、类中的函数、函数的参数、异常 。
如果你使用刚刚学会的Java做了一个小应用程序,那么你就可以开始有选择地看这本书 。书中分别对Java的不同特性分章节给予作者本人的建议 。如果你还没有用到其中的某一特性,那么就没必要读相关的章节,跳过去 。只有你经历过了,摔倒过了,困扰过了,你才会与书中的建议产生共鸣《Java并发编程实战》本书深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册 。
书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量 。java进阶必看,多线程的最佳书籍 。《实战Java高并发程序设计》此书主要介绍基于Java的并行程序设计基础、思路、方法和实战 。
首先,立足于并发程序基础,详细介绍Java中进行并行程序设计的基本方法 。第二,进一步详细介绍JDK中对并行程序的强大支持,帮助读者快速、稳健地进行并行程序开发 。第三,详细讨论有关“锁”的优化和提高并行程序性能级别的方法和思路 。第四,介绍并行的基本设计模式及Java8对并行程序的支持和改进 。第五,介绍高并发框架Akka的使用方法 。
最后,详细介绍并行程序的调试方法 。在集群和分布式环境下,java内置锁逐渐失去了用武之地,但是锁和并发的思想还是通用而且值得学习的 。看过java并发编程实战以后再读这本书,每一个知识点都比较精炼而且代码示例简单易懂,没有晦涩难懂的翻译词,手绘图也有一种亲切感 。缺点是没有附源码,需要自己去github上找 。
《算法》个人觉得是我见过的最简单易懂的算法入门书籍 。以前搜刮过几本算法竞赛书,但是难度终归太大 。本书使用Java语言实现算法,配有大量的图解,没有一句难懂的话,而且全都是模块化实现 。讲的都是实用算法,没有那些高大上听着名字就让人感到很害怕的东西,个人觉得比CLRS实用性要强,更加适合入门的学习 。此书力图研究当今最重要的计算机算法并将一些最基础的技能传授给广大求知者 。

推荐阅读