力求打造最完整最实用的Java工程师学习指南!
这些文章和总结都是我近几年学习Java总结和整理出来的,非常实用,对于学习Java后端的朋友来说应该是最全面最完整的技术仓库。 我靠着这些内容进行复习,拿到了BAT等大厂的offer,这个仓库也已经帮助了很多的Java学习者,如果对你有用,希望能给个star支持我,谢谢!
为了更好地讲清楚每个知识模块,我们也参考了很多网上的优质博文,力求不漏掉每一个知识点,所有参考博文都将声明转载来源,如有侵权,请联系我。
点击关注微信公众号及时获取笔主最新更新文章,并可免费领取Java工程师必备学习资源
Java基础
基础知识
- 面向对象基础
- Java基本数据类型
- string和包装类
- final关键字特性
- Java类和包
- 抽象类和接口
- 代码块和代码执行顺序
- Java自动拆箱装箱里隐藏的秘密
- Java中的Class类和Object类
- Java异常
- 解读Java中的回调
- 反射
- 泛型
- 枚举类
- Java注解和最佳实践
- JavaIO流
- 多线程
- 深入理解内部类
- javac和javap
- Java8新特性终极指南
- 序列化和反序列化
- 继承封装多态的实现原理
集合类
- Java集合类总结
- Java集合详解:一文读懂ArrayList,Vector与Stack使用方法和实现原理
- Java集合详解:Queue和LinkedList
- Java集合详解:Iterator,fail-fast机制与比较器
- Java集合详解:HashMap和HashTable
- Java集合详解:深入理解LinkedHashMap和LRU缓存
- Java集合详解:TreeMap和红黑树
- Java集合详解:HashSet,TreeSet与LinkedHashSet
- Java集合详解:Java集合类细节精讲
JavaWeb
- 走进JavaWeb技术世界:JavaWeb的由来和基础知识
- 走进JavaWeb技术世界:JSP与Servlet的曾经与现在
- 走进JavaWeb技术世界:JDBC的进化与连接池技术
- 走进JavaWeb技术世界:Servlet工作原理详解
- 走进JavaWeb技术世界:初探Tomcat的HTTP请求过程
- 走进JavaWeb技术世界:Tomcat5总体架构剖析
- 走进JavaWeb技术世界:Tomcat和其他WEB容器的区别
- 走进JavaWeb技术世界:浅析Tomcat9请求处理流程与启动部署过程
- 走进JavaWeb技术世界:Java日志系统的诞生与发展
- 走进JavaWeb技术世界:从JavaBean讲到Spring
- 走进JavaWeb技术世界:单元测试框架Junit
- 走进JavaWeb技术世界:从手动编译打包到项目构建工具Maven
- 走进JavaWeb技术世界:Hibernate入门经典与注解式开发
- 走进JavaWeb技术世界:Mybatis入门
- 走进JavaWeb技术世界:深入浅出Mybatis基本原理
- 走进JavaWeb技术世界:极简配置的SpringBoot
Java进阶
并发编程
- Java并发指南:并发基础与Java多线程
- Java并发指南:深入理解Java内存模型JMM
- Java并发指南:并发三大问题与volatile关键字,CAS操作
- Java并发指南:Java中的锁Lock和synchronized
- Java并发指南:JMM中的final关键字解析
- Java并发指南:Java内存模型JMM总结
- Java并发指南:JUC的核心类AQS详解
- Java并发指南:AQS中的公平锁与非公平锁,Condtion
- Java并发指南:AQS共享模式与并发工具类的实现
- Java并发指南:Java读写锁ReentrantReadWriteLock源码分析
- Java并发指南:解读Java阻塞队列BlockingQueue
- Java并发指南:深度解读java线程池设计思想及源码实现
- Java并发指南:Java中的HashMap和ConcurrentHashMap全解析
- Java并发指南:JUC中常用的Unsafe和Locksupport
- Java并发指南:ForkJoin并发框架与工作窃取算法剖析
- Java并发编程学习总结
JVM
- JVM总结
- 深入理解JVM虚拟机:JVM内存的结构与消失的永久代
- 深入理解JVM虚拟机:JVM垃圾回收基本原理和算法
- 深入理解JVM虚拟机:垃圾回收器详解
- 深入理解JVM虚拟机:Javaclass介绍与解析实践
- 深入理解JVM虚拟机:虚拟机字节码执行引擎
- 深入理解JVM虚拟机:深入理解JVM类加载机制
- 深入理解JVM虚拟机:JNDI,OSGI,Tomcat类加载器实现
- 深入了解JVM虚拟机:Java的编译期优化与运行期优化
- 深入理解JVM虚拟机:JVM监控工具与诊断实践
- 深入理解JVM虚拟机:JVM常用参数以及调优实践
- 深入理解JVM虚拟机:Java内存异常原理与实践
- 深入理解JVM虚拟机:JVM性能管理神器VisualVM介绍与实战
- 深入理解JVM虚拟机:再谈四种引用及GC实践
- 深入理解JVM虚拟机:GC调优思路与常用工具
Java网络编程
- Java网络编程和NIO详解:JAVA 中原生的 socket 通信机制
- Java网络编程与NIO详解:JAVA NIO 一步步构建IO多路复用的请求模型
- Java网络编程和NIO详解:IO模型与Java网络编程模型
- Java网络编程与NIO详解:浅析NIO包中的BufferChannel和Selector
- Java网络编程和NIO详解:Java非阻塞IO和异步IO
- Java网络编程与NIO详解:LinuxEpoll实现原理详解
- Java网络编程与NIO详解:浅谈Linux中Selector的实现原理
- Java网络编程与NIO详解:浅析mmap和DirectBuffer
- Java网络编程与NIO详解:基于NIO的网络编程框架Netty
- Java网络编程与NIO详解:Java网络编程与NIO详解
- Java网络编程与NIO详解:Tomcat中的Connector源码分析(NIO)
Spring全家桶
Spring
- SpringAOP的概念与作用
- SpringBean的定义与管理(核心)
- Spring中对于数据库的访问
- Spring中对于校验功能的支持
- Spring中的Environment环境变量
- Spring中的事件处理机制
- Spring中的资源管理
- Spring中的配置元数据(管理配置的基本数据)
- Spring事务基本用法
- Spring合集
- Spring容器与IOC
- Spring常见注解
- Spring概述
- 第一个Spring应用
Spring源码分析
综合
- Spring源码剖析:初探SpringIOC核心流程
- Spring源码剖析:SpringIOC容器的加载过程
- Spring源码剖析:懒加载的单例Bean获取过程分析
- Spring源码剖析:JDK和cglib动态代理原理详解
- Spring源码剖析:SpringAOP概述
- Spring源码剖析:AOP实现原理详解
- Spring源码剖析:Spring事务概述
- Spring源码剖析:Spring事务源码剖析
AOP
- AnnotationAwareAspectJAutoProxyCreator 分析(上)
- AnnotationAwareAspectJAutoProxyCreator 分析(下)
- AOP示例demo及@EnableAspectJAutoProxy
- SpringAop(四):jdk 动态代理
- SpringAop(五):cglib 代理
- SpringAop(六):aop 总结
事务
- spring 事务(一):认识事务组件
- spring 事务(二):事务的执行流程
- spring 事务(三):事务的隔离级别与传播方式的处理
- spring 事务(四):事务的隔离级别与传播方式的处理
- spring 事务(五):事务的隔离级别与传播方式的处理
- spring 事务(六):事务的隔离级别与传播方式的处理
启动流程
- spring启动流程(一):启动流程概览
- spring启动流程(二):ApplicationContext 的创建
- spring启动流程(三):包的扫描流程
- spring启动流程(四):启动前的准备工作
- spring启动流程(五):执行 BeanFactoryPostProcessor
- spring启动流程(六):注册 BeanPostProcessor
- spring启动流程(七):国际化与事件处理
- spring启动流程(八):完成 BeanFactory 的初始化
- spring启动流程(九):单例 bean 的创建
- spring启动流程(十):启动完成的处理
- spring启动流程(十一):启动流程总结
组件分析
- spring 组件之 ApplicationContext
- spring 组件之 BeanDefinition
- Spring 组件之 BeanFactory
- spring 组件之 BeanFactoryPostProcessor
- spring 组件之 BeanPostProcessor
重要机制探秘
- ConfigurationClassPostProcessor(一):处理 @ComponentScan 注解
- ConfigurationClassPostProcessor(三):处理 @Import 注解
- ConfigurationClassPostProcessor(二):处理 @Bean 注解
- ConfigurationClassPostProcessor(四):处理 @Conditional 注解
- Spring 探秘之 AOP 的执行顺序
- Spring 探秘之 Spring 事件机制
- spring 探秘之循环依赖的解决(一):理论基石
- spring 探秘之循环依赖的解决(二):源码分析
- spring 探秘之监听器注解 @EventListener
- spring 探秘之组合注解的处理
SpringMVC
- SpringMVC中的国际化功能
- SpringMVC中的异常处理器
- SpringMVC中的拦截器
- SpringMVC中的视图解析器
- SpringMVC中的过滤器Filter
- SpringMVC基本介绍与快速入门
- SpringMVC如何实现文件上传
- SpringMVC中的常用功能
SpringMVC源码分析
- SpringMVC源码分析:SpringMVC概述
- SpringMVC源码分析:SpringMVC设计理念与DispatcherServlet
- SpringMVC源码分析:DispatcherServlet的初始化与请求转发
- SpringMVC源码分析:DispatcherServlet如何找到正确的Controller
- SpringMVC源码剖析:消息转换器HttpMessageConverter与@ResponseBody注解
- DispatcherServlet 初始化流程
- RequestMapping 初始化流程
- Spring 容器启动 Tomcat
- SpringMVC demo 与@EnableWebMvc 注解
- SpringMVC 整体源码结构总结
- 请求执行流程(一)之获取 Handler
- 请求执行流程(二)之执行 Handler 方法
SpringBoot
- SpringBoot系列:SpringBoot的前世今生
- 给你一份SpringBoot知识清单.md
- Spring常见注解使用指南(包含Spring+SpringMVC+SpringBoot)
- SpringBoot中的日志管理
- SpringBoot常见注解
- SpringBoot应用也可以部署到外部Tomcat
- SpringBoot生产环境工具Actuator
- SpringBoot的Starter机制
- SpringBoot的前世今生
- SpringBoot的基本使用
- SpringBoot的配置文件管理
- SpringBoot自带的热部署工具
- SpringBoot中的任务调度与@Async
- 基于SpringBoot中的开源监控工具SpringBootAdmin
SpringBoot源码分析
SpringCloud
- SpringCloud概述
- Spring Cloud Config
- Spring Cloud Consul
- Spring Cloud Eureka
- Spring Cloud Gateway
- Spring Cloud Hystrix
- Spring Cloud LoadBalancer
- Spring Cloud OpenFeign
- Spring Cloud Ribbon
- Spring Cloud Sleuth
- Spring Cloud Zuul
SpringCloud 源码分析
- Spring Cloud Config源码分析
- Spring Cloud Eureka源码分析
- Spring Cloud Gateway源码分析
- Spring Cloud Hystrix源码分析
- Spring Cloud LoadBalancer源码分析
- Spring Cloud OpenFeign源码分析
- Spring Cloud Ribbon源码分析
SpringCloud Alibaba
- SpringCloud Alibaba概览
- SpringCloud Alibaba nacos
- SpringCloud Alibaba RocketMQ
- SpringCloud Alibaba sentinel
- SpringCloud Alibaba skywalking
- SpringCloud Alibaba seata
SpringCloud Alibaba源码分析
- Spring Cloud Seata源码分析
- Spring Cloud Sentinel源码分析
- SpringCloudAlibaba nacos源码分析:概览
- SpringCloudAlibaba nacos源码分析:服务发现
- SpringCloudAlibaba nacos源码分析:服务注册
- SpringCloudAlibaba nacos源码分析:配置中心
- Spring Cloud RocketMQ源码分析
设计模式
- 设计模式学习总结
- 初探Java设计模式:创建型模式(工厂,单例等).md
- 初探Java设计模式:结构型模式(代理模式,适配器模式等).md
- 初探Java设计模式:行为型模式(策略,观察者等).md
- 初探Java设计模式:JDK中的设计模式.md
- 初探Java设计模式:Spring涉及到的种设计模式.md
计算机基础
计算机网络
todo
操作系统
todo
Linux相关
todo
数据结构与算法
todo
数据结构
todo
算法
todo
数据库
todo
MySQL
- Mysql原理与实践总结
- 重新学习Mysql数据库:无废话MySQL入门
- 重新学习Mysql数据库:『浅入浅出』MySQL和InnoDB
- 重新学习Mysql数据库:Mysql存储引擎与数据存储原理
- 重新学习Mysql数据库:Mysql索引实现原理和相关数据结构算法
- 重新学习Mysql数据库:根据MySQL索引原理进行分析与优化
- 重新学习MySQL数据库:浅谈MySQL的中事务与锁
- 重新学习Mysql数据库:详解MyIsam与InnoDB引擎的锁实现
- 重新学习Mysql数据库:MySQL的事务隔离级别实战
- 重新学习MySQL数据库:Innodb中的事务隔离级别和锁的关系
- 重新学习MySQL数据库:MySQL里的那些日志们
- 重新学习MySQL数据库:以Java的视角来聊聊SQL注入
- 重新学习MySQL数据库:从实践sql语句优化开始
- 重新学习Mysql数据库:Mysql主从复制,读写分离,分表分库策略与实践
缓存
Redis
- Redis原理与实践总结
- 探索Redis设计与实现开篇:什么是Redis
- 探索Redis设计与实现:Redis的基础数据结构概览
- 探索Redis设计与实现:Redis内部数据结构详解——dict
- 探索Redis设计与实现:Redis内部数据结构详解——sds
- 探索Redis设计与实现:Redis内部数据结构详解——ziplist
- 探索Redis设计与实现:Redis内部数据结构详解——quicklist
- 探索Redis设计与实现:Redis内部数据结构详解——skiplist
- 探索Redis设计与实现:Redis内部数据结构详解——intset
- 探索Redis设计与实现:连接底层与表面的数据结构robj
- 探索Redis设计与实现:数据库redisDb与键过期删除策略
- 探索Redis设计与实现:Redis的事件驱动模型与命令执行过程
- 探索Redis设计与实现:使用快照和AOF将Redis数据持久化到硬盘中
- 探索Redis设计与实现:浅析Redis主从复制
- 探索Redis设计与实现:Redis集群机制及一个Redis架构演进实例
- 探索Redis设计与实现:Redis事务浅析与ACID特性介绍
- 探索Redis设计与实现:Redis分布式锁进化史
消息队列
Kafka
大后端
- 后端技术杂谈开篇:云计算,大数据与AI的故事
- 后端技术杂谈:搜索引擎基础倒排索引
- 后端技术杂谈:搜索引擎工作原理
- 后端技术杂谈:Lucene基础原理与实践
- 后端技术杂谈:Elasticsearch与solr入门实践
- 后端技术杂谈:云计算的前世今生
- 后端技术杂谈:白话虚拟化技术
- 后端技术杂谈:OpenStack的基石KVM
- 后端技术杂谈:OpenStack架构设计
- 后端技术杂谈:先搞懂Docker核心概念吧
- 后端技术杂谈:Docker 核心技术与实现原理
- 后端技术杂谈:十分钟理解Kubernetes核心概念
- 后端技术杂谈:捋一捋大数据研发的基本概念
分布式
分布式理论
- 分布式系统理论基础:一致性PC和PC
- 分布式系统理论基础:CAP
- 分布式系统理论基础:时间时钟和事件顺序
- 分布式系统理论基础:Paxos
- 分布式系统理论基础:选举多数派和租约
- 分布式系统理论基础:RaftZab
- 分布式系统理论进阶:Paxos变种和优化
- 分布式系统理论基础:zookeeper分布式协调服务
- 分布式理论总结
分布式技术
- 搞懂分布式技术:分布式系统的一些基本概念
- 搞懂分布式技术:分布式一致性协议与Paxos,Raft算法
- 搞懂分布式技术:初探分布式协调服务zookeeper
- 搞懂分布式技术:ZAB协议概述与选主流程详解
- 搞懂分布式技术:Zookeeper的配置与集群管理实战
- 搞懂分布式技术:Zookeeper典型应用场景及实践
- 搞懂分布式技术:LVS实现负载均衡的原理与实践
- 搞懂分布式技术:分布式session解决方案与一致性hash
- 搞懂分布式技术:分布式ID生成方案
- 搞懂分布式技术:缓存的那些事
- 搞懂分布式技术:SpringBoot使用注解集成Redis缓存
- 搞懂分布式技术:缓存更新的套路
- 搞懂分布式技术:浅谈分布式锁的几种方案
- 搞懂分布式技术:浅析分布式事务
- 搞懂分布式技术:分布式事务常用解决方案
- 搞懂分布式技术:使用RocketMQ事务消息解决分布式事务
- 搞懂分布式技术:消息队列因何而生
- 搞懂分布式技术:浅谈分布式消息技术Kafka
- 分布式技术实践总结
面试指南
todo
校招指南
todo
面经
todo
工具
todo
资料
todo
书单
todo
待办
springboot和springcloud