从⼊门到进阶,JAVA书籍的最佳阅读顺序!
本⽂⾸发于知乎,已获得1000+赞和收藏。
先介绍下本⼈的情况,希望对⼤家学习Java之路有⼀定帮助。
本⼈本科完全没接触过Java,后⾃学Java,对整个技术栈有⼀些沉淀,并顺利拿到阿⾥巴巴集团校招offer,中间也⾛过很多弯路,希望对楼主有⼀些帮助。
看书⼀定要看经典书(不在多),先放图镇楼,然后按照由浅⼊深的顺序(Java语⾔基础->Java语⾔进阶->分布式&存储->修炼内功)来对书单做描述以及推荐的理由。
⾸先是语⾔基础,有了扎实的语⾔基础,才可能写出⼀⼿好的⼯业级的代码。
第⼀阶段、Java⼊门书单推荐
⽬的是掌握java语⾔基础,进⾏简单的开发。
学习内容:
1.Java⼊门书籍,后⾯有列举推荐。
2.代码规范。Java服务端遵循的是Oracle的Java语⾔编码规范,在编写代码之前,要先熟悉。
3.开发流程。了解开发流程,⽽且必须要熟悉每⼀个环节。开发流程⼤致是:功能开发→单元测试→功能测试→Code Review→集成
伦纳德32分快船测试→发布。
4.开发⼯具。对于⼊门者来说,⾸先建议你安装JDK+⽂本编辑器的开发⼯具包,并下载和你的JDK版本⼀致的API帮助。另外,你最
好掌握常⽤类库和⼯具包,如goole guava等,因为JDK原⽣API在很多场景下并不⽅便。在选择Java I
DE时,很多⼈推荐Eclipse,这个的话仁者见仁吧,我个⼈还是推荐Intellij IDEA,因为Intellij IDEA在调试、⾃动完成和重构⽅⾯的表现都⽐Eclipse更优秀。当然,在构建桌⾯的应⽤平台时,选择哪个就另当别论。
推荐书籍1:《head first java》
可以先从基础⼊⼿,掌握java语⾔基础知识:集合、多线程、⽹络、⾯向对象设计等。
⾸推《Head First Java》,这本书相⽐常见的另外两本书《Java编程思想》和《Java核⼼技术》,偏趣味性,语⾔也⽐较轻松,能将⾼深的知识讲的浅显易懂,不会让⼈觉得枯燥⽆味。
另外2本书⼤块头,部分章节⽐较枯燥难以理解,容易让初学者钻进去出不来。
推荐书籍2:《Java并发编程实战》
要写出⼯业级的代码,必然和并发脱离不了⼲系。程序员⾯试,并发也是必考知识点之⼀。
书中从并发性和线程安全性的基本概念出发,介绍了如何使⽤类库提供的基本并发构建块,⽤于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将⼩的线程安全类组合成更⼤的线程安全类,如何利⽤线程来提⾼并发应⽤程序的吞吐量,如何识别可并⾏执⾏的任务,如何提⾼单线程⼦系统的响应性,如何确保并发程序执⾏预期任务,如何提⾼并发代码的性能和可伸缩性等内容,最后介绍了⼀些⾼级主题,如显式锁、原⼦变量、⾮阻塞算法以及如何开发⾃定义的同步⼯具类。java下载过程
第⼆阶段、Java语⾔进阶书单
需要掌握基本的调优技能以及⾯向对象设计的思想,为写出⼯业级代码打基础。
学习⽬标:服务端项⽬开发
学习内容:
1.Spring。项⽬开发必备。
2.关系型数据库。主要学习MySQL,包括设计MySQL表结构,基于执⾏计划的SQL分析优化根据业务特点分表分库,数据库容量规
importance of health划等。
3.⾮关系型数据库。主要学习NoSQL,Hadoop、HBase、Hive这些常⽤的⼯具⼀定要学会使⽤。
4.服务容量规划和性能调优。性能调优知识、可靠性保障、故障处理、监控报警系统,这些也都要掌握。
this love专辑推荐书籍3:《深⼊理解Java虚拟机》
作为Java程序员,不懂JVM是不⾏的。
本书详细讲解了类加载、java内存原理、垃圾回收机制等知识。只有掌握了JVM,才能在实际⽣产环境遇到线上问题如GC频率过⾼、内存溢出等应对⾃如、还有应⽤系统JVM参数合理配置。
本书是JVM公认的推荐好书,是Java进阶必看书籍。
推荐书籍4:《Java性能权威指南》
市⾯上专注于Java性能的并不多,能游刃有余地展⽰Java性能优化难点的更是凤⽑麟⾓,本书即是其中之⼀。
通过使⽤JVM和Java平台,以及Java语⾔和应⽤程序接⼝,本书详尽讲解了Java性能调优的相关知识,帮助读者深⼊理解Java平台性能的各个⽅⾯,最终使程序如虎添翼。
推荐书籍5:《⼤话设计模式》
如果以前未接触过⾯向对象程序设计,那么本书必读,毕竟⾯向对象程序设计和C语⾔中⾯向过程设计有很⼤的不同。
第三阶段、分布式书单推荐
学习⽬标:中间件开发和分布式系统
学习内容:
1.开源项⽬:学会分析项⽬中的设计思路、中间件开发和项⽬源码,⽐如RocketMQ、Netty等。
2.知识体系构建。回顾⾃⼰的学习过程,建构⾃⼰的知识体系,多看⼤型⽹站系统和技术建构,了解核⼼原理和Java实践过程。
3.参与项⽬。参与项⽬的过程是提⾼深化的过程。在这个过程中你就能发现⾃⼰对那些知识掌握不⾜,也能够提⾼⾃⼰的能⼒,多参
sqlobject
加项⽬才会提⾼更快。
asp公司是什么意思
4.根据⾃⼰的实际需求提升某⽅⾯技能。这就是个查漏补缺、优势扩⼤的过程。在流式计算上有优势,就进⼀步提升,在⼀些相关
的书籍精读。
推荐书籍6:《数据密集型应⽤系统设计》
吐⾎推荐,本书⾖瓣评分9.7分,堪称分布式领域圣经,本⼈⾮常后悔没有更早的阅读本书。
本书并没有局限于那种分布式框架,⽽是着重讲解分布式整体架构设计理念和基础知识。
作者⽔平⾮常⾼,本书⼴度⾮常⼤(诚然并不是很深,要在⼀本书⾥将那么多知识深度讲解也是不可能的),深⼊浅出,⼤家不⽤担⼼晦涩难懂(在这⾥更加推荐英⽂基础好的话直接读英⽂原版)。
包含:分布式系统的存储(第三章存储、第五章复制、第六章分⽚)、分布式⼀致性、实时计算(第⼗章和⼗⼀章的批处理和流处理)。书中更是给出了相当多的参考⽂献链接,值得深⼊研究。
书中有⼤量插图,将分布式系统⾼深的技术形象⽣动的描述,通俗易懂,⽐如下图是讲数据库多副本 并发写的问题的:
我最近也在三刷《设计数据密集型应⽤》,写了⼀些读书笔记,主要是帮助⾃⼰消化知识点,未来也会做⼀些实战案例,感兴趣的可以看⼀下我下⾯的专栏:
推荐书籍7:数据库《⾼性能MySQL》
本书深度讲解了mysql引擎架构、索引设计、SQL查询优化的实战技巧、复制、分⽚等原理,还有运维技能。适合精读。
如果是从事⽹络相关开发,如rpc框架、mq消息中间件,那么还需要掌握⽹络相关基础知识,以及业界有名的⾼性能⽹络组件Netty。
第四阶段、java内功修炼
推荐书籍8:《重构》
所谓精益求精,同⼀件事,同⼀个功能,让不同的⼈来做会写出不同的代码。本书通俗易懂,教你如何不断优化现有代码,逐步迭代重构,写出清晰易懂、功能正确、可扩展可维护的代码。
最后,看书是⼀⽅⾯,更重要的是实战,勤动⼿,看源码,多Debug,写DEMO,多参与开源社区讨论。如果⼤家觉得我的回答有⽤,请点个赞,谢谢!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。