这是一个频繁更新的项目(2020.9 ~ 2021.3)。
文章说明
- 这个仓库的文章,都是关于计算机基础,还有 Java 后台相关原理源码,几乎不涉及怎么调用 api。
- 每次会把一个技术点整理完才进行更新,很多技术体系太庞大,比如某些框架源码,我会只挑选关键部分整理。
CSDN 博客同步更新,现放到 Github 有如下原因
- 博客是平铺式结构,无法按照目录式结构保存,并且博客内容较杂,这里只存放相关的内容。
- 也为了更好帮助想要使用或者进行改动的同学,所以把所有 markdown 文稿也在这里开源。
最后,欢迎 star 该项目,也欢迎使用、修改、与提出意见,希望多多支持!
后记:4.2 日收到阿里 offer,暂时停止更新!
类型相关
特性相关
list
map
- HashMap 核心方法源码详解
- HashMap 次要方法源码详解
- HashMap 知识扩充
- LinkedHashMap 源码解析
- TreeMap 核心方法源码详解
- TreeMap 次要方法源码详解
- TreeMap 中子Map源码详解
- HashTable 源码解析
set
基础
底层
JUC
-
AQS
-
并发工具
-
并发容器
-
阻塞队列
-
线程池
内存管理
- 1、运行时数据区域详解
- 2、对象详解
- 3、垃圾回收判定与算法
- 4、HotSpot回收算法细节
- 5、经典垃圾回收器
- 6、Region 内存布局回收器 G1
- 7、低延迟回收器 Shenandoah
- 8、低延迟回收器 ZGC
- 9、无操作回收器 Epsilon
- 10、回收器常用参数
- 11、故障处理工具与六种 OOM
执行子系统
编译与优化
数据结构与对象
核心实现
持久化实现
多机实现
功能实现
关系模型
标准 SQL
建模设计
实现技术
硬件结构
CPU
CU
指令系统
硬件系统
多处理器
启动与接口
进程管理
内存管理
外设管理
Linux IO 特性
五层模型
- 1、物理层核心基础
- 2.1、链路层的差错控制与流量控
- 2.2、广播链路MAC协议
- 2.3、多种局域网协议及技术
- 3.1、网络层概述
- 3.2、Internet 路由协议
- 3.3、IP 协议
- 3.4、网络层其他协议与技术
- 4.1、传输层与 UDP 协议
- 4.2、TCP 协议
- 4.3、TCP 可靠传输原理
- 4.4、TCP 实现可靠传输的方式
- 4.5、TCP 流量控制与拥塞控制实现
- 5.1、HTTP、SMTP、POP3
- 5.2、FTP、DNS、DHCP
网络安全
流程
前端
中间代码
后端
概述
工程流程
面向对象
管理
数组
链表
查找表
栈、队列
二叉树
回溯
动态规划
贪心
算法补充
IOC
- 实体Bean构建方式(xml、JavaConfig)及相关配置
- 1、核心组件及继承关系类图
- 2、初始化源码流程(上)定位 Resource
- 3、初始化源码流程(中)加载 BeanDefinition
- 4、初始化源码流程(下)注册 BeanDefinition
- 5、源码流程的核心类时序图
DI
- 四种依赖注入方式(xml、注解)
- 1、源码流程(上)实例化Bean
- 2、源码流程(下)依赖注入
- 3、源码流程的核心类时序图
- 4、懒加载与 finishBeanFactoryInitialization
- 5、FactoryBean 与解析
- 6、自动装配 autowire
- 7、循环依赖 singleton 三层缓存
Bean
AOP
Transation
MVC
- SpringMVC 整合示例与优化建议
- 1、MVC:九大核心组件分析
- 2、源码流程(上)从监听器启动
- 3、源码流程(中)Servlet 初始化阶段
- 4、源码流程(下)运行阶段
- 5、HandlerMapping 初始化及 handler 获取
- 6、HandlerInterceptor 注册与时序原理
- 7、HandlerAdapter 适配与执行的过程
执行原理
- 1、编程式流程及核心对象生命周期
- 2、配置文件 mybatis-conf.xml 详解
- 3、执行原理(一):创建会话工厂(SqlSessionFactory) 源码分析
- 4、执行原理(二):创建会话(SqlSession) 源码分析
- 5、执行原理(三):获取代理对象(MapperProxy) 源码分析
- 6、执行原理(四):MapperProxy执行SQL源码分析
特性原理
- 1、Mapper 注册与绑定源码解析
- 2、动态 SQL 特性
- 3、动态 SQL 源码解析
- 4、一级、二级缓存机制
- 6、插件机制源码解析
- 7、PageHelper 分页插件原理
- 8、ResultSetHandler 封装对象流程
- 9、延迟加载原理
集成原理
- 1、Spring 集成 MyBatis 及问题分析
- 2、Spring集成原理(一):分析注入 SqlSessionFactoryBean
- 3、Spring集成原理(二):分析注入 MapperScannerConfigurer
- 4、Spring集成原理(三):MapperFactoryBean 与 SqlSessionTemplate
- 5、Spring集成原理(四):分析注入 MapperProxy
Spring 注解驱动
- 1、Spring 注解驱动原理(一):AnnotationConfigApplicationContext 两类构造方法.md
- 2、Spring 注解驱动原理(二):使用 basePackages 构造
- 3、Spring 注解驱动原理(三):使用 annotatedClass 构造之注册配置类
- 4、Spring 注解驱动原理(四):使用 annotatedClass 构造之 ConfigurationClassPostProcessor
自动装配
- 1、如何实现自定 starter
- 2、自动装配原理(一):AutoConfigrationImportSelector 回调流程
- 3、自动装配原理(二):AutoConfigurationImportSelector 的 selectImports
- 4、自动装配原理(三):ConfigurationClassBeanDefinitionReader 过滤条件注解
启动原理
内嵌 web 容器
仅代表我读完后的个人观点(只有力荐里的与豆瓣评分无冲突,几乎都是高分)
- 万分力荐:代表我认为特别好的,如果想读些 Java 相关的书,建议一定读我里面罗列的,绝对物超所值。
- 比较推荐:代表我认为的好书,看完确实可以学到东西那种,但算不上特别好,不过还是很值得一读。
- 可以看看:代表我认为还是有一定缺陷的书,不是讲的不特别清楚,就是有点泛或者浅。
- 比较一般:代表我读完后收获较小的书,或者主观上不是很喜欢的书,并不代表里面的书一定不好。
链接是豆瓣中该书的所有短评,避免只被我读完时的感受影响!
- 深入理解Java虚拟机(第3版):无需多言,刷了两次。
- Redis设计与实现:也是刷了两次,我看过最深入浅出的书,一点没有门槛,看完觉得 Redis 非常明了。
- 操作系统原理、实现与实践:哈工大老师出品,除实践部分看了两次,围绕 Linux 作为原理的现实,注重抠细节,特别厉害。
- 代码整洁之道:绝大部分观点都认可,很多观点都让人佩服,比如代码要短小精悍,还要可以自解释等等。
- Mybatis技术内幕:好书,从模块讲起,再讲处理流程,主干清晰明了,源码也讲的清楚。
- 深入刨析Tomcat:读过最好的源码书,没有之一,从假设自己要设计一个服务器出发,然后分析 Tomcat 完善自己的服务器。
- MySQL技术内幕:看这本书之前最好懂操作系统,不然很难受,而且第一章提的很多东西后面才讲,但确实是好书。
- 从Paxos到Zookeeper :豆瓣7.7,但是我认为是好书,不过 Paxos 那块讲的不是很清楚,还需要配合博客看看。
- 微服务架构设计模式 :好书,改变了我对微服务的看法,微服务根本不是用个 Dubbo 或者 SpringCloud 的事。
- Effective Java中文版(第3版):列了 90 条,核心感觉还是讲怎么用 Java 写更健壮和灵活的程序,写得还算不错
- Java并发编程艺术:这本书讲述顺序就是按照内存模型->synchronized->源码,总体觉得还不错,但是开头两章有点劝退。
- Spring Boot编程思想(核心篇):豆瓣评分较低 6.5,但是我觉得把 SpringBoot 比较核心的部分都讲了,就是确实凑字数太明显,啥都贴。
- RocketMQ技术内幕:豆瓣评分较低 6.9,不过我觉得主要原因可能把 Client 还有 Server 串着讲,阅读体验确实差,但内容尚可吧。
- RabbitMQ实战指南:远超我的期望,冲着如何实现去的,实战书里少有的既有实战又有深度。
- 计算机网络(原书第7版) :不用多说,比教材易懂,也比教材讲的内容多,总体自顶向下,更容易理解点。
- Spring源码深度解析(第二版):当时读的时候豆瓣 5.9 分,倒不是说不好,只是对第一次看源码的新手不太友好,而且确实绝大部分照搬第一版。
- 深入理解Apache Dubbo与实战:是我读过的源码书里不算好的,讲的不透彻,但拓展点还有 RPC 策略那讲的确实还行。
- 深入分析Java Web技术内幕(修订版):如果看了我说的其他书,这本书完全没必要看,各个模块讲的很浅,但要想快速了解一下可以看看。
- Netty实战 :我一般不看实战书的,但是 Netty 的书太少了,以为有源码,结果一点没提,不过 Netty 用法讲的确实比网课好。
- 图解HTTP:比较浅,看这个是因为 HTTP 权威指南太厚,不过比一般大学教材 HTTP 部分讲的多。
- 图解TCP/IP:当时看的入门书,如果想深入学一下,还是推荐计网的教材或者其他书籍。
- 分布式服务架构:原理、设计与实战:架构没讲什么,说了点分布式的问题,分布式事务、性能估算还有日志框架啥的还行,最后几章完全凑数。
- 大型网站技术结构:扫盲书,三天就看完了,建立个概念而已。
- 分布式服务框架:原理与实践:讲咋设计微服务框架的,比较一般,就讲了下微服务框架的几个关键点,总体比较宏观一些。
- 大规模分布式存储系统:分布式入门书,讲的分布式存储系统的宏观架构,并没有一些具体的细节,还讲了一些 OceanBase 基本原理。
- Elasticsearch源码解析与优化实战:叫源码解析,冲着核心源码去看的,结果没啥源码,讲的都是模块,而且也不够深入浅出。
- 代码简洁之道:程序员的职业素养:总体还行,存在部分观点很不认可,有点教条主义与理想化,尤其程序员对抗加班,还有什么必须完全 TDD。
That's ALL!