从入门到进阶,JAVA书籍的最佳阅读顺序!

您所在的位置:网站首页 编程基础知识入门书 从入门到进阶,JAVA书籍的最佳阅读顺序!

从入门到进阶,JAVA书籍的最佳阅读顺序!

2024-07-13 00:26| 来源: 网络整理| 查看: 265

本文首发于知乎,已获得1000+赞和收藏。

原文链接:https://www.zhihu.com/question/269505829/answer/1791006152

先介绍下本人的情况,希望对大家学习Java之路有一定帮助。

本人本科完全没接触过Java,后自学Java,对整个技术栈有一些沉淀,并顺利拿到阿里巴巴集团校招offer,中间也走过很多弯路,希望对楼主有一些帮助。

看书一定要看经典书(不在多),先放图镇楼,然后按照由浅入深的顺序(Java语言基础->Java语言进阶->分布式&存储->修炼内功)来对书单做描述以及推荐的理由。

首先是语言基础,有了扎实的语言基础,才可能写出一手好的工业级的代码。

第一阶段、Java入门书单推荐

目的是掌握java语言基础,进行简单的开发。

学习内容:

1.Java入门书籍,后面有列举推荐。

2.代码规范。Java服务端遵循的是Oracle的Java语言编码规范,在编写代码之前,要先熟悉。

3.开发流程。了解开发流程,而且必须要熟悉每一个环节。开发流程大致是:功能开发→单元测试→功能测试→Code Review→集成测试→发布。

4.开发工具。对于入门者来说,首先建议你安装JDK+文本编辑器的开发工具包,并下载和你的JDK版本一致的API帮助。另外,你最好掌握常用类库和工具包,如goole guava等,因为JDK原生API在很多场景下并不方便。在选择Java IDE时,很多人推荐Eclipse,这个的话仁者见仁吧,我个人还是推荐Intellij IDEA,因为Intellij IDEA在调试、自动完成和重构方面的表现都比Eclipse更优秀。当然,在构建桌面的应用平台时,选择哪个就另当别论。

推荐书籍1:《head first java》

可以先从基础入手,掌握java语言基础知识:集合、多线程、网络、面向对象设计等。

首推《Head First Java》,这本书相比常见的另外两本书《Java编程思想》和《Java核心技术》,偏趣味性,语言也比较轻松,能将高深的知识讲的浅显易懂,不会让人觉得枯燥无味。

另外2本书大块头,部分章节比较枯燥难以理解,容易让初学者钻进去出不来。

推荐书籍2:《Java并发编程实战》

要写出工业级的代码,必然和并发脱离不了干系。程序员面试,并发也是必考知识点之一。

书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。

第二阶段、Java语言进阶书单

需要掌握基本的调优技能以及面向对象设计的思想,为写出工业级代码打基础。

学习目标:服务端项目开发

学习内容:

1.Spring。项目开发必备。

2.关系型数据库。主要学习MySQL,包括设计MySQL表结构,基于执行计划的SQL分析优化根据业务特点分表分库,数据库容量规划等。

3.非关系型数据库。主要学习NoSQL,Hadoop、HBase、Hive这些常用的工具一定要学会使用。

4.服务容量规划和性能调优。性能调优知识、可靠性保障、故障处理、监控报警系统,这些也都要掌握。

推荐书籍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.参与项目。参与项目的过程是提高深化的过程。在这个过程中你就能发现自己对那些知识掌握不足,也能够提高自己的能力,多参加项目才会提高更快。

4.根据自己的实际需求提升某方面技能。这就是个查漏补缺、优势扩大的过程。在流式计算上有优势,就进一步提升,在找一些相关的书籍精读。

推荐书籍6:《数据密集型应用系统设计》

吐血推荐,本书豆瓣评分9.7分,堪称分布式领域圣经,本人非常后悔没有更早的阅读本书。

本书并没有局限于那种分布式框架,而是着重讲解分布式整体架构设计理念和基础知识。

作者水平非常高,本书广度非常大(诚然并不是很深,要在一本书里将那么多知识深度讲解也是不可能的),深入浅出,大家不用担心晦涩难懂(在这里更加推荐英文基础好的话直接读英文原版)。

包含:分布式系统的存储(第三章存储、第五章复制、第六章分片)、分布式一致性、实时计算(第十章和十一章的批处理和流处理)。书中更是给出了相当多的参考文献链接,值得深入研究。

 书中有大量插图,将分布式系统高深的技术形象生动的描述,通俗易懂,比如下图是讲数据库多副本 并发写的问题的:

我最近也在三刷《设计数据密集型应用》,写了一些读书笔记,主要是帮助自己消化知识点,未来也会做一些实战案例,感兴趣的可以看一下我下面的专栏:

夏天:设计数据密集型应用-C5-主从架构及同步延迟问题

夏天:设计数据密集型应用-C5-多主数据复制架构

夏天:设计数据密集型应用-C5-去中心化复制架构

夏天:设计数据密集型应用-C6-分区和二级索引

夏天:设计数据密集型应用-C6-分区Rebalancing和路由

 

推荐书籍7:数据库《高性能MySQL》

本书深度讲解了mysql引擎架构、索引设计、SQL查询优化的实战技巧、复制、分片等原理,还有运维技能。适合精读。

如果是从事网络相关开发,如rpc框架、mq消息中间件,那么还需要掌握网络相关基础知识,以及业界有名的高性能网络组件Netty。

第四阶段、java内功修炼 推荐书籍8:《重构》

所谓精益求精,同一件事,同一个功能,让不同的人来做会写出不同的代码。本书通俗易懂,教你如何不断优化现有代码,逐步迭代重构,写出清晰易懂、功能正确、可扩展可维护的代码。

最后,看书是一方面,更重要的是实战,勤动手,看源码,多Debug,写DEMO,多参与开源社区讨论。如果大家觉得我的回答有用,请点个赞,谢谢!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3