关于java:Java从入门到升仙的书单推荐附带读书笔记

2次阅读

共计 7274 个字符,预计需要花费 19 分钟才能阅读完成。

Java 从入门到升仙的书单举荐,附带读书笔记

看书肯定要看经典书,方才开始也能够配合一下简略的视频教程跟着一起学习,然而要进步必定是看书,而后依照由浅入深的学习线路来学习(Java 语言根底 ->Java 语言进阶 -> 分布式 & 存储 -> 修炼内功)。

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

首先是语言根底,有了扎实的语言根底,才可能写出好的代码。

本阶段次要的学习内容:Java 的语言根底、代码标准、可能纯熟的应用罕用的开发工具,对于开发工具的话,我还是强推 Intellij IDEA,IDEA 的激活插件能够去我的博客首页种找

举荐书籍 1:《head first java》

在以前我学习 Java 的时候没有看过这本书,网友们给我的举荐的都是《Java 编程思维第 4 版》,对于老手的我来说看的我差点被劝退;工作当前偶尔一次机会看到来共事的桌上放了一本《Head First Java》,随便打开看了一会就
吸引了我(如果入门的时候就看了这本书,我还能是当初这个吊样?)

尽管本书很厚,然而图文并茂看起来很就趣,很少有写编程语言的书籍可能把趣味性交融在一起,做游戏就能够学习一门技术,所以这本书很适宜作为 Java 入门书籍;

  • 第一章次要介绍了 Java 的工作原理、倒退简史、程序结构。
  • 第二章次要介绍了 Java 的面向对象,包含继承、笼罩等内容。
  • 第三章次要介绍了 Java 的变量。关键点:援用变量存储的是对象的地址(贮存形式)、数组也是对象。
  • 第四章次要介绍了 Java 的办法。关键点:实参和形参、值传递和援用传递、== 和 equals()。
  • 第五章次要介绍了程序设计与实现的步骤。
  • 第六章次要介绍了 Java 的 API。关键点:ArrayList。
  • 第七章次要介绍了继承和多态。关键点:笼罩和重载。
  • 第八章次要介绍了接口和抽象类。关键点:超类 Object。
  • 第九章次要介绍了结构器与垃圾收集器。关键点:对象存储在堆中,对象援用在栈中;当对象失去最初一个援用变量时,它会被回收。第十章次要介绍了动态类、静态方法、动态变量。关键点:final、常量、数字格式化、日期表示法。
  • 第十一章次要介绍了异样解决。
  • 第十二章和第十三章,次要介绍了 GUI 和 Swing。关键点:事件处理机制。
  • 第十四章次要介绍了序列化和文件输出 / 输入。关键点:Serializable 接口。
  • 第十五章次要介绍了网络 Socket 和多线程。
  • 第十六章次要介绍了汇合和泛型。
  • 第十七章次要介绍了程序的打包和公布。
  • 第十八章次要介绍了近程服务调用。

学习永远都不能只停留在书本,在看完这本书之后就应该去实战一下,通常 Java SE 入门学习完之后就能够写一个坦克大战的游戏了

举荐书籍 2:《Java 编程思维》

这本书我在读大学的时候就买过一本,过后刚入 Java 坑,不晓得看什么书,在网上搜到的举荐都是这本书,过后雄心勃勃打算把要这本书认真看完,看本书的过程还挺苦楚的,最终也没能齐全看完;这本书足足有靠近 900 页,我也不举荐齐全
从头到位看,本书能够配合《head first java》一起看;而且本书的成书工夫是 2007 年,应用的 JDK1.5;

其实本书的作者在 17 年也有公布第五版,因为改名了,而且只有电子版,所以大家都不晓得

举荐书籍 3:《Maven 实战》

本书是国内第一本公开出版的 Maven 相干的书籍,零碎的解说了 Maven 的装置、配置和根本应用办法,以便于初学者参考;

具体解说了坐标和依赖、maven 仓库、生命周期和插件、聚合与继承等 Maven 的外围概念,倡议所有读者仔细阅读;

论述了应用 Nexus 建设私服、应用 Maven 进行测试、应用 Hudson 进行继续集成、应用 Maven 构建 Web 利用、Maven 的版本治理、Maven 的灵便构建、生成我的项目站点等实用性较强的高级常识

当初的咱们工作所能接触到的 Java 我的项目 80% 都是应用 Maven 构建的,所以这本书不得不看

举荐书籍 4:《Git 版本控制治理》

Git 是一款收费、开源的分布式版本控制系统,当初已成为了分布式版本控制的支流工具,Github、Gitee 都是应用的 git;

《Git 版本控制治理(第 2 版)》是学习把握 Git 的最佳教程,总共分为 21 章,其内容涵盖了如何在多种实在开发环境中应用 Git;洞察 Git 的罕用案例、初始工作和基本功能;
如何在集中和分布式版本控制中应用 Git;应用 Git 治理合并、抵触、补丁和差别;取得诸如从新定义变基(rebasing)、钩子(hook)以及解决子模块(子项目)等的高级技巧;
Git 如何与 SVN 版本库交互(包含 SVN 向 Git 的转换);通过 GitHub 导航、应用开源我的项目,并对开源我的项目做奉献。

举荐书籍 5:《网络是怎么连贯的》

本书以探索之旅的模式,从在浏览器中输出网址开始,一路追踪了到显示出网页内容为止的整个过程,以图配文,解说了网络的全貌,并重点介绍了理论的网络设备和软件是如何工作的。
目标是帮忙读者了解网络的实质意义,了解理论的设施和软件,进而纯熟使用网络技术。同时,专设了“网络术语其实很简略”专栏,以对话的模式介绍了一些网络术语的词源,颇为生动有趣

举荐书籍 6:《图解 Http》

好书不肯定要厚,本书就是一本短小精干的一本好书,谨严粗疏地分析了 HTTP 协定的构造;通过本书疾速理解并把握 HTTP 协定的根底,前端工程师剖析抓包数据,后端工程师实现 REST API

这里也留下一篇我读了本书之后写的文章:

《面试篇》Http 协定

针对本书外面提到的大文件的断点续传知识点,我就写了一个开源我的项目:Java 多线程下载大文件

Java 实现大文件多线程下载,提速 30 倍!想学?我教你啊

Gitee 仓库:https://gitee.com/silently9527/fast-download


第二阶段、Java 语言进阶

举荐书籍 1:《Effective Java 中文版 第 3 版》

本书是通过作者实战总结进去的 90 条具备实用价值的教训规定;读本书能够不同从头到位通读,能够依据本人的趣味抉择不同的章节,章节与章节之间没有必然的分割;反正读过本书的人没有一个人说不好的;

举荐书籍 2:《重构——改善既有的代码设计》

这本书仍然是一本不朽的经典之作,如果你想要让本人在公司有不可替代性,倡议仔细阅读本书中的坏代码滋味,写出的代码保障只有你一个人可能看懂,相对让公司离不开你。。。

我起初有从新翻读了本书,写了一篇简化条件表达式的文章:https://juejin.cn/post/6901814939833335821

举荐书籍 3:《Java NIO 中文版》

本书先从操作系统层面由浅入深的逐渐引出 NIO 中实现的要害概念,逐渐的论述了 java nio 原理以及使用过程中须要留神的细节点;

就程序员所面临的有代表性的 I / O 问题作了详尽论述,并解说了如何能力充分利用新的 I / O 个性所提供的各种潜能。您将通过实例学会如何应用这些工具来解决事实工作中经常遇到的 I / O 问题,并理解这些新个性如何对响应速率、可伸缩性和可靠性产生间接影响。

这本书中文版只有电子书,上面是我读这本书以及联合网上的一些文章做的总结

举荐书籍 4:《Java 并发编程的艺术》

并发编程畛域的扛鼎之作,作者是阿里和 1 号店的资深 Java 技术专家,对并发编程有十分深刻的钻研,《Java 并发编程的艺术》是他们多年一线开发教训的结晶。

内容涵盖 Java 并发编程机制的底层实现原理、Java 内存模型、Java 并发编程根底、Java 中的锁、并发容器和框架、原子类、并发工具类、线程池、Executor 框架等主题,
每个主题都做了深刻的解说,同时通过实例介绍了如何利用这些技术。

本书强烈建议精读,内容不多,总共 200 多页,但本书都是精髓干货。这是我读这本书后做的脑图


第三阶段、分布式 & 存储

举荐书籍 1:《MySQL 是怎么运行的 : 从根儿上了解 MySQL》

《MySQL 是怎么运行的:从根儿上了解 MySQL》采纳滑稽风趣的表达方式,对 MySQL 的底层运行原理进行了介绍,内容涵盖了应用 MySQL 的同学在求职面试和工作中常见的一些外围概念。

为什么这个 SQL 语句执行得这么慢?为什么我明明建设了索引,然而查问打算显示没用?为什么 IN 查问中的参数一多就不应用索引了?为什么我的数据显示成了乱码?

这些问题不仅是工作中常常遇到的,也是在面试中的高频面试题,从豆瓣的评分就能够晓得这本书内容不凡;不信?能够先看下我的笔记

举荐书籍 2:《Redis 深度历险:外围原理与利用实际》

《Redis 深度历险:外围原理与利用实际》分为根底和利用篇、原理篇、集群篇、拓展篇、源码篇共 5 大块内容。
根底和利用篇解说对读者来说最有价值的内容,能够间接利用到理论工作中;
原理篇、集群篇让开发者透过简略的技术外表看到粗劣的底层世界;
拓展篇帮忙读者拓展技术视线和夯实根底,便于进阶学习;
源码篇让高阶的读者可能读懂源码,把握核心技术实力。

这本书强烈建议筹备想要换工作面试的同学看看,redis 的面试题基本上逃不出本书。本书仍然有写读书笔记

举荐书籍 3:《Tomcat 架构解析》

做 Java 的兄弟基本上离不开 Tomcat,90% 的公司应用服务都是应用的 Tomcat,所以本书咱们必须的看看;这里我重点举荐第 2、3、4、6 章,其余章节能够简略理解,其
对本书我印象比拟深的是递推式的对各个组件进行合成来论述 tomcat 整体架构,这样更容易了解每个组件的理论作用;以及 Tomcat 在设计时思考的扩张性。
由外到内:Server、Service、Connector 及 Engine(Host、Context、Wrapper);责任链的实现通过 Pipeline 和 Valve、BasicValve;

举荐书籍 4:《Tomcat 内核设计分析》

本书能够配合《Tomcat 架构解析》一起看,前一本书从架构上整体去了解 Tomcat 的设计,而这本书中对 Tomcat 中的重要组件有比拟粗疏的解说,而且基本上都有配上几张图来很
形象的阐明该组件是如何工作的。

举荐书籍 5:《深刻了解 Apache Dubbo 与实战》

本书尽管评估不太高,然而是惟一一本 dubbo 评估最高的书籍,如果只是简略的应用 dubbo,那间接看官网文档就能够了,如果要想深刻到源码去了解 dubbo,那么本书应该是必须了;
这本书中贴了很多的源码,要想看懂这本书的话还必须跟着书中的内容一起断点跟踪源码才行;

看书须要带着目的性去看,这本书倡议抓住几个外围的问题在去看:

  1. dubbo 的 SPI 机制,如何实现的动静加载,IOC 和 AOP
  2. dubbo 的服务裸露过程?
  3. dubbo 的服务发现过程?
  4. dubbo 的服务调用过程?
  5. dubbo 的整体架构?

如果要想了解 dubbo 底层的网络通信,还须要学习 netty;netty 相干的书籍我没看过,我就不举荐了,这里附上我在网上学习 netty 之后的笔记,Netty 之所以受到这么多人的推崇,
还是因为这个框架的确很强,这个框架做的优化以及须要的常识也比拟多;

这里我尤其要强调 netty 中的一个重点模块 ” 高性能内存调配 ”,了解了 Netty 的内存治理之后就能够了解 redis 的内存治理,它们两个的实现思路都是一样的,内存治理通常都是 c 语言来写的,
而 Netty 用 java 写来一个内存治理,Java 程序猿也能够内存治理一探到底

举荐书籍 6:《Spring 源码深度解析》

讲 Spring 源码相干的书籍评估都不是很高,这里我举荐我看过的这本书,本书也不必全副看完,筛选本人有趣味的来看,这本书通用也须要配合这代码调试来看,当初我在看这本书时次要看的内容是
IOC 容器的启动过程、以及获取 Bean 的过程;Spring 实现 AOP 的机制,以及 Spring 如何利用 AOP 实现事物?带着这些问题看书配合这断点调试;

举荐书籍 7:《看透 Spring MVC》

自己在工作之后经验过 struts2 的败落,到 SpringMVC 的崛起;当初的工作环境 SpringMVC 简直是必选框架之一,所以深刻了解 SpringMVC 还是很有必要的

全面介绍 Spring MVC 的架构、原理、外围概念和操作,零碎总结 Spring MVC 九大组件的解决以及罕用的技巧和实际

自己再次从新浏览了 SpringMVC 的源码之后也写来 SpringMVC 相干的系列文章;想要深刻了解框架莫过于实战手写一个,所以我手写来一个简易版的 SmartMVC 框架;

Github 的仓库地址:https://github.com/silently9527/SmartMvc

相应的我还写了这个框架的开发文档:

  • 00 深刻解析 SpringMVC 外围原理:从手写简易版 MVC 框架开始(SmartMvc)
  • 01 SmartMVC 总体架构布局
  • 02 RequestMappingHandlerMapping 初始化过程
  • 03 拦截器 HandlerInterceptor
  • 04 HandlerMapping 获取对应的 Handler
  • 05 参数解析器 HandlerMethodArgumentResolver
  • 06 返回解析器 HandlerMethodReturnValueHandler
  • 07 Handler 执行器 InvocableHandlerMethod
  • 08 实现 RequestMappingHandlerAdapter
  • 09 视图 InternalResourceView、RedirectView
  • 10 视图解析器 ViewResolver
  • 11 DispatcherServlet 实现 doDispatch 来实现申请逻辑
  • 12 全局异样处理器 HandlerExceptionResolver
  • 13 外围配置类 WebMvcConfigurationSupport
  • 14 SmartMvc 与 SpringBoot 集成(一)
  • 15 SmartMvc 与 SpringBoot 集成(二)
  • 16 SmartMvc 我的项目实战

第四阶段、修炼内功

举荐书籍 1:《算法图解》

本书的例子图文并茂,以让人容易了解的形式阐释了算法;书中的前三章将帮忙你打下基础,带你学习二分查找、大 O 表示法、两种根本的数据结构以及递归等。
余下的篇幅将次要介绍利用宽泛的算法,具体内容包含:面对具体问题时的解决技巧,比方,何时采纳贪心算法或动静布局;散列表的利用;图算法;K 最近邻算法。

看完本书能够对一些常见的经典算法做一个理解,哪种算法解决哪些问题;

举荐书籍 2:《算法第四版》

这本书也能够算得上是算法书籍中的不朽制作来,作者在解说每种算法都是采纳的循序渐进的形式,提出问题解决问题,再提出问题在解决这种形式直至失去最优的算法;
作者全面介绍了对于算法和数据结构的必备常识,并特地针对排序、搜寻、图解决和字符串解决进行了阐述。第 4 版具体给出了每位程序员应知应会的 50 个算法,

提供了算法的理论代码,而且这些 Java 代码实现采纳了模块化的编程格调,读者能够不便地加以革新。

本书总共 600 多页,而且看算法本书也比拟烧脑,如果想要疾速的理解本书的内容,大家能够先看我看完本书之后写的一些文章:

  • 老哥是时候来温习下数据结构与算法了
  • 如何检测社交网络中两个人是否是敌人关系(union-find 算法)
  • 常见的高级排序算法,这次全搞懂
  • 死磕归并排序算法
  • 疾速排序算法实现及优化
  • 原来实现优先级队列如此简略
  • 图解堆排序
  • 基于数组或链表实现 Map
  • 基于二叉树实现 Map
  • 重点举荐:硬核图解红黑树并手写实现
  • 基于拉链式和线性探测式散列表实现 Map
  • 图算法系列之无向图的数据结构
  • 图算法系列之深度优先搜寻(一)
  • 图算法系列之深度优先搜寻(二)
  • 图算法系列之计算图中最短门路

举荐书籍 3:《深刻了解 Java 虚拟机 第三版》

搞 Java 的人,如果不理解 JVM 是不行的;如果学习 JVM 不看这本书是更不行的;

本书具体解说了类加载机制、java 内存原理、垃圾回收机制等常识。只有把握了 JVM,能力在理论生产环境遇到线上问题如 GC 频率过高、内存溢出等应答自若、还有利用零碎 JVM 参数合理配置。

看完本书就能够对虚拟机有个比拟深刻的理解,此时能够配合一起看一下《Java 虚拟机标准 JAVA SE8 版》,这本书具体的形容了 Class 类文件的规定,内存治理相干的规定比拟少,根本都是有虚拟机实现者自行相对

举荐书籍 4:《虚拟机设计与实现 以 JVM 为例》

本书从一位虚拟机(VM)架构师的角度,以易于了解、层层深刻的形式介绍了各种主题和算法,尤其是不同 VM 通用的次要技术。这些算法用图示充沛解释,用便于了解的代码片段实现,
使得这些抽象概念对系统软件工程师而言具像化并可编程。书中还包含一些同类文献中较少波及的主题,例如运行时辅助、栈开展和本地接口

本书能够配合《深刻了解 Java 虚拟机 第三版》一起看,也能解答很多 JVM 中相干的问题,比方:面试常常问的锁降级,大多数的人都会说偏差锁、轻量级锁、重量级锁,如果在持续问什么是重量级锁,分量锁是如何实现的?登时就懵圈了;
这种问题这本书能够帮忙解答,以及 wait、notify 调用之后虚拟机都是如何实现的

举荐书籍 5:《本人入手写 Java 虚拟机》

纸上得来终觉浅,绝知此事要躬行;

在看完《深刻了解 Java 虚拟机 第三版》、《Java 虚拟机标准 JAVA SE8 版》、《虚拟机设计与实现 以 JVM 为例》之后,我置信很多人对虚拟机外面的概念是如何实现的仍然很含糊,比如说 Java 的多态是如何实现的?在执行 main 办法的时候加载 class 的细节是怎么的?
要解决这些心里的疑难,最好的形式入手本人干一个简略版的 JVM;

本书是一本实战书籍,能够跟着这本书一起手动写一个简略版的 JVM;这本书是有 go 语言写的,如果对 go 不相熟的同学也能够采纳 Java 语言;我没有听错把 Java 语言也能够实现 jvm?
是的,java 能够实现 jvm,相干的开源我的项目也有很多;能够自行到 github 下来搜寻

这里贴上我对这几本 JVM 书看完之后做的笔记


当然还有很多的好书这里没有写到,欢送在评论区探讨,写下对你影响最大的一本书

珍藏等于白嫖,评论点赞才是真情!

xmind 图片太大,上传之后比拟含糊,须要高清图片的敌人欢送关注我的公众号:贝塔学 Java;找我要私发给大家

原文链接:https://silently9527.cn/?p=96

正文完
 0