Java Level 2 学习的八大名著
前段时间有几天难得的假期,于是把自己认为Java技术栈中的精华总结了一下,但是一直没有时间写下来,今天终于得空希望本文可以对大家有所启发。通过多个实际项目的沉淀和一些Java开源项目的源代码研究,个人认为Java语言中的精华技术主要包括如下三个方面,其实严格来说只有第一点说的是纯Java中的东西,提到二,三两点是因为这两种技术在Java技术栈中应用的比较广泛,而且对于Java技术栈的意义比较大。
1. 内存模型,并发基础设施,IOs
2. 开源MQ
3. 开源内存数据库
笔者之前在C++技术栈中写了多年的多线程代码,对比Java技术栈给我印象最为深刻的就是JVM的内存模型,并发基础设施,IOs,JVM的内存模型从根本上保证了多线程程序的简单性和一致性,在C++技术栈中很多的东西需要依赖操作系统本身或者线程库提供的基础设施来完成,如果需要完成一个复杂项目的设计,其实施难度是难以想象的,老鸟凭借多年的沉淀,对OS和线程库的熟悉程度也许可以完成,但是新手来写这样的东西基本就是不能用的。Java技术栈中关于JVM内存模型,并发基础设施,IOs的名著主要有如下几本。
名著1 <<Java Concurrency In Practice>> -- 推荐理由,如果只能选一本书来学习Java多线程和并发,那么选这本吧,因为目前业内普遍认同的只有这一本,这本书是Cover的是JDK1.5以后的技术,再早的书籍也没什么价值了。
名著2 <<Effective Java>> -- 推荐理由,书中有一章专门讲并发编程,难得的赞,其他章节也都值得学习,这本书笔者读了3遍+,每次都有新收获。
名著3 <<Java 8 In Action>> -- 推荐理由,前面两本书相对比较老,这本书算是对前面两本名著的补充
名著4 <<Java IOs>> -- 推荐理由,这是Java技术栈中IO技术的血泪史,俗话说知道历史才能进步,这本书的价值就在这里
名著5 <<Netty In Action>> -- 推荐理由,Netty 这个框架是Java技术栈对Reactor模式的一个实现,Netty 这个框架的源代码可以说把Java技术栈中的多线程和IO用到了极致,所以对这个框架源代码的学习也是对以上所有相关技术学习的一次升华。
开源MQ和开源NoSQL内存数据库在现代的大型Java项目中已经基本成了标配,MQ技术主要解决的问题是耗时处理的异步化和异构系统的通信协作,Redis解决的是数据读写性能问题,下面这三本书可以说是这方面的经典。
名著6 <<Active MQ In Action>>
名著7 <<Rabbit MQ In Action>>
名著8 <<Redis In Action>>
总结
本文对Java技术栈进阶的主要技术进行了简单的总结,并总结出了8本相关的名著有针对性的对这些技术的学习提出了建议,希望对大家有所帮助。