本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽

整理的Java知识体系主要包括基础知识,工具,并发编程,数据结构与算法,数据库,JVM,架构设计,应用框架,中间件,微服务架构,分布式架构,程序员的一些思考,项目管理,运维,权限,推荐书籍,云计算,区块链等,包含了作为一个Java工程师在开发工作学习中需要用到或者可能用到的绝大部分知识。千里之行始于足下,希望大家跟进自己的薄弱点,查缺补漏,根据自己感兴趣的方面多学习,学的精通一点,从现在开始行动起来。路漫漫其修远兮,吾将上下而求索,不管编程开发的路有多么难走,多么艰辛,我们都将百折不挠,不遗余力地去追求和探索

Java知识体系最详细总结(2020版)_spring


文章目录


Java面试总结

Java面试总结汇总,欢迎阅读,文章持续更新中…


序号

内容

链接地址

1

Java基础知识面试题(2020最新版)

2

Java集合容器面试题(2020最新版)

3

Java异常面试题(2020最新版)

4

JVM面试题(2020最新版)


5

Spring面试题(2020最新版)

6

Spring MVC面试题(2020最新版)

​​

7

Spring Boot面试题(2020最新版)

​​

8

Spring Cloud面试题(2020最新版)

9

MyBatis面试题(2020最新版)

​​

10

Redis面试题(2020最新版)

11

消息中间件MQ与RabbitMQ面试题(2020最新版)

12

Dubbo面试题(2020最新版)

13

Linux面试题(2020最新版)

​​

14

Tomcat面试题(2020最新版)

15

ZooKeeper面试题(2020最新版)

​​

16

Netty面试题(2020最新版)

​​


基础知识

Java概述


序号

内容

链接地址

1

Java简介


2

Java发展历程


3

Java语言特点


4

JDK安装与环境变量配置


5

JVM、JRE和JDK的关系



基础语法

大部分已完成

待整理:

Java开发必会的反编译知识(附支持对Lambda进行反编译的工具)

一文读懂什么是Java中的自动拆装箱

Java的枚举类型用法介绍

类、枚举、接口、数组、可变参数

泛型、序列化


序号

内容

链接地址

1

Java标识符


2

Java关键字(Java 8版本)


3

Java注释


4

Java访问修饰符


5

Java分隔符


6

Java义字符


7

Java进制


8

Java流程控制语句


9

Java流程控制语句-顺序结构


10

Java流程控制语句-分支结构


11

Java流程控制语句-循环结构


12

Java表达式


13

Java运算符


14

Java变量


15

Java常量


16

Java数据类型


17

Java反射


18

Java语法糖


19

Java注解


20

JSON简介


21

Properties类简介


22

XML简介


23

YML简介


24

Java8新特性-Lambda表达式


25

Java基础语法



面向对象

待整理:

抽象

继承、封装、多态

接口、抽象类、内部类


序号

内容

链接地址

1

什么是面向对象

​​


集合框架

迭代器、增强for、泛型


序号

内容

链接地址

1

Java集合框架总结


2

ArrayList(JDK1.8)源码解析


3

HashMap(JDK1.8)源码解析


4

LinkedHashMap(JDK1.8)源码解析


5

LinkedList(JDK1.8)源码解析


6

TreeMap(JDK1.8)源码解析



IO流

待整理:

File、递归

字节流、字节缓冲流

编码表、编码方式、换流、序列化、序列化流、打印流、commons-io

网络编程

网络概述、网络模型

Socket原理机制

UDP

TCP/IP

协议、OSI 七层协议、HTTP、HTTP2.0、HTTPS

网络安全

XSS、CSRF、SQL注入、Hash Dos、脚本注入、漏洞扫描工具、验证码

DDoS防范、用户隐私信息保护、序列化漏洞

加密解密、对称加密、哈希算法、非对称加密

服务安全、数据安全、数据备份

网络隔离、登录跳板机、非外网分离

认证、授权

常用API

Date、DateFormat、Calendar

String、StringBuffer、StringBuilder、正则表达式

Number、Radom、Math、System、包装类

Arrays、Collections

常用工具类库

待整理:OkHttp、commons-lang3


序号

内容

链接地址

1

HttpClient工具类


2

WGS84地球坐标系,GCJ02火星坐标系,BD09百度坐标系简介与


3

Lombok简介、使用、工作原理、优缺点


4

Java几种常用JSON库性能比较



单元测试

JUnit

异常


序号

内容

链接地址

1

Java异常总结


2

Java异常架构与异常关键字


3

Java异常处理流程


4

如何选择异常类型


5

Java异常常见面试题


6

Java异常处理最佳实践



日志


序号

内容

链接地址

1

常用日志框架Log4j,Logback,Log4j2性能比较与日志门面SLF4J简介


2

日志作用


3

Apache Log4j2详解


4

Log4j2同步日志,混合日志和异步日志配置详解


5

Log4j2配置文件详解


6

Log4j2的Appenders配置详解


7

Log4j2的Filters配置详解


8

Log4j2的Policy触发策略与Strategy滚动策略配置详解


9

Log4j2的Loggers配置详解



工具

IDEA


序号

内容

链接地址

1

IDEA常用配置和常用插件


2

IDEA中Maven依赖下载失败解决方案



Eclipse & STS


序号

内容

链接地址

1

Eclipse & Spring Tool Suite常用配置

​​


Maven


序号

内容

链接地址

1

Maven简介


2

Maven安装与配置


3

Maven依赖冲突


4

手动安装Maven依赖


5

Maven部署jar包到远程仓库


6

Maven私服Nexus安装与使用



Docker


序号

内容

链接地址

1

使用Docker安装GitLab

​​


Git


序号

内容

链接地址

1

Git简介


2

版本控制


3

Git忽略文件.gitignore详解


4

Git与SVN的区别


5

常用Git命令


6

Git,GitHub与GitLab的区别



GitLab

GitKraken

Navicat

并发编程

基础知识


序号

内容

链接地址

1

并发编程的优缺点


2

线程的状态和基本操作


3

进程和线程的区别(超详细)


4

创建线程的四种方式



并发理论


序号

内容

链接地址

1

Java内存模型


2

重排序与数据依赖性


3

as-if-serial规则和happens-before规则的区别


4

Java并发理论总结



并发关键字


序号

内容

链接地址

1

Java并发关键字-synchronized


2

Java并发关键字-volatile


3

Java并发关键字-final



Lock体系

待整理:

公平锁 & 非公平锁

乐观锁 & 悲观锁

可重入锁 & 不可重入锁

互斥锁 & 共享锁

死锁


序号

内容

链接地址

1

Lock简介与初识AQS


2

AQS(AbstractQueuedSynchronizer)详解与源码分析


3

ReentrantLock(重入锁)实现原理与公平锁非公平锁区别


4

读写锁ReentrantReadWriteLock源码分析


5

Condition源码分析与等待通知机制


6

LockSupport详解



并发容器


序号

内容

链接地址

1

并发容器之ConcurrentHashMap详解(JDK1.8版本)与源码分析


2

并发容器之ConcurrentLinkedQueue详解与源码分析


3

并发容器之CopyOnWriteArrayList详解


4

并发容器之ThreadLocal详解


5

ThreadLocal内存泄漏分析与解决方案


6

并发容器之BlockingQueue详解


7

并发容器之ArrayBlockingQueue与LinkedBlockingQueue详解



线程池


序号

内容

链接地址

1

线程池ThreadPoolExecutor详解


2

Executors类创建四种常见线程池


3

线程池之ScheduledThreadPoolExecutor详解


4

FutureTask详解



原子操作类


序号

内容

链接地址

1

原子操作类总结

​​


并发工具


序号

内容

链接地址

1

并发工具之CountDownLatch与CyclicBarrier


2

并发工具之Semaphore与Exchanger



并发实践


序号

内容

链接地址

1

实现生产者消费者的三种方式


数据结构与算法

数据结构


序号

内容

链接地址

1

红黑树详细分析(图文详解),看了都说好

1、数组
2、栈
3、队列
4、链表
5、树
二叉树
完全二叉树
平衡二叉树
二叉查找树(BST)
红黑树
B,B+,B*树
LSM 树

字段是不是数据结构



算法

语言只是编程工具,算法才是编程之魂!

1、排序算法:快速排序、归并排序、计数排序
2、搜索算法:回溯、递归、剪枝
3、图论:最短路径、最小生成树、网络流建模
4、动态规划:背包问题、最长子序列、计数问题
5、基础技巧:分治、倍增、二分法、贪心算法

宽度优先搜索

深度优先搜索

广度优先

双指针

扫描线

朴素贝叶斯

推荐算法




排序算法


序号

内容

链接地址

1

史上最全经典排序算法总结(Java实现)


2

冒泡排序(Bubble Sort)


3

选择排序(Selection Sort)


4

插入排序(Insertion Sort)


5

希尔排序(Shell Sort)


6

归并排序(Merge Sort)


7

快速排序(Quick Sort)


8

堆排序(Heap Sort)


9

计数排序(Counting Sort)


10

桶排序(Bucket Sort)


11

基数排序(Radix Sort)



LeetCode


序号

内容

链接地址

1

LeetCode第1题 两数之和(Two Sum)


2

LeetCode第3题 无重复字符的最长子串(Longest Substring Without Repeating Characters)


3

LeetCode第7题 整数反(Reverse Integer)


4

LeetCode第9题 回文数(Palindrome Number)


5

LeetCode第13题 罗马数字整数(Roman to Integer)


6

LeetCode第14题 最长公共前缀(Longest Common Prefix)


7

LeetCode第20题 有效的括号(Valid Parentheses)


8

LeetCode第26题 删除排序数组中的重复项(Remove Duplicates from Sorted Array)



数据库

Oracle

MySQL

数据库基础知识

数据类型

引擎

索引

三大范式

常用SQL语句

存储过程与函数

视图

MySQL优化

事务

数据备份与还原

Redis


序号

内容

链接地址

1

Redis总结


2

Redis使用场景


3

Redis数据类型


4

Redis持久化


5

Redis过期键的删除策略


6

Redis数据淘汰策略


7

Redis与Memcached的区别


8

Redis常见面试题(精简版)


9

Redis中缓存雪崩、缓存穿透等问题的解决方案


10

阿里云Redis开发规范学习总结


11

Redis开发常用规范


12

这可能是最中肯的Redis规范了



Java虚拟机

深入理解Java虚拟机


序号

内容

链接地址

1

深入理解Java虚拟机-走近Java


2

深入理解Java虚拟机-Java内存区域与内存溢出异常


3

深入理解Java虚拟机-垃圾回收器与内存分配策略


4

深入理解Java虚拟机-虚拟机执行子系统


5

深入理解Java虚拟机-程序编译与代码优化


6

深入理解Java虚拟机-高效并发



架构设计

高可用架构

高并发架构

可伸缩架构

集群

设计模式

常用设计模式

创建型:

单例模式、工厂模式、抽象工厂模式

结构型:

适配器模式、外观模式、代理模式、装饰器模式

行为型:

观察者模式、策略模式、模板模式


序号

内容

链接地址

1

设计模式

​​


创建型模式


序号

内容

链接地址

1

抽象工厂模式


2

单例模式


3

工厂模式


4

建造者模式


5

原型模式



结构型模式


序号

内容

链接地址

1

代理模式


2

过滤器模式


3

桥接模式


4

适配器模式


5

外观模式


6

享元模式


7

装饰器模式


8

组合模式



行为型模式


序号

内容

链接地址

1

备忘录模式


2

策略模式


3

迭代器模式


4

访问者模式


5

观察者模式


6

解释器模式


7

空对象模式


8

命令模式


9

模板模式


10

责任链模式


11

中介者模式


12

状态模式



J2EE模式


序号

内容

链接地址

1

MVC模式


2

传输对象模式


3

服务定位器模式


4

拦截过滤器模式


5

前端控制器模式


6

数据访问对象模式


7

业务代表模式


8

组合实体模式



实践应用


序号

内容

链接地址

1

业务复杂=if else?刚来的大神竟然用策略+工厂彻底干掉了他们!


应用框架

如何学习一个框架或者技术


  • 是什么,简介,概述
  • 有什么用,用途,使用场景
  • 怎么用,在实际开发中的应用,注意事项
  • 优缺点
  • 框架原理,工作流程,工作原理
  • 常见面试题
  • 源码分析,核心类,核心方法,设计模式
  • 发布博客,在开发和实践中,博客反馈中持续改进
  • 与同事朋友交流,技术论坛,技术分享中持续丰富知识

常用框架


  • 集成开发工具(IDE):Eclipse、MyEclipse、Spring Tool Suite(STS)、Intellij IDEA、NetBeans、JBuilder、JCreator
  • JAVA服务器:tomcat、jboss、websphere、weblogic、resin、jetty、apusic、apache
  • 负载均衡:nginx、lvs
  • web层框架:Spring MVC、Struts2、Struts1、Google Web Toolkit(GWT)、JQWEB
  • 服务层框架:Spring、EJB
  • 持久层框架:Hibernate、MyBatis、JPA、TopLink
  • 数据库:Oracle、MySql、MSSQL、Redis
  • 项目构建:maven、ant
  • 持续集成:Jenkins
  • 版本控制:SVN、CVS、VSS、GIT
  • 私服:Nexus
  • 消息组件:IBM MQ、RabbitMQ、ActiveMQ、RocketMq
  • 日志框架:Commons Logging、log4j 、slf4j、IOC
  • 缓存框架:memcache、redis、ehcache、jboss cache
  • RPC框架:Hessian、Dubbo
  • 规则引擎:Drools
  • 工作流:Activiti
  • 批处理:Spring Batch
  • 通用查询框架:Query DSL
  • JAVA安全框架:shiro、Spring Security
  • 代码静态检查工具:FindBugs、PMD
  • Linux操作系统:CentOS、Ubuntu、SUSE Linux、
  • 常用工具:PLSQL Developer(Oracle)、Navicat(MySql)、FileZilla(FTP)、Xshell(SSH)、putty(SSH)、SecureCRT(SSH)、jd-gui(反编译)

Spring


序号

内容

链接地址

1

Spring简介、设计理念、优缺点、应用场景


2

Spring模块组成(框架组成、整体架构、体系架构、体系结构)


3

Spring容器中bean的生命周期


4

控制反(IoC)与依赖注入(DI)详解



《Spring实战》读书笔记


序号

内容

链接地址

1

《Spring实战》读书笔记-第1章 Spring之旅


2

《Spring实战》读书笔记-第2章 装配Bean


3

《Spring实战》读书笔记-第3章 高级装配


4

《Spring实战》读书笔记-第4章 面向切面的Spring


5

《Spring实战》读书笔记-第5章 构建Spring Web应用程序


6

《Spring实战》读书笔记-第6章 渲染Web视图


7

《Spring实战》读书笔记-第7章 Spring MVC的高级技术



Spring MVC

MyBatis


序号

内容

链接地址

1

MyBatis官方文档


2

MyBatis官方文档-简介


3

MyBatis官方文档-入门


4

MyBatis官方文档-XML 配置


5

MyBatis官方文档-XML 映射文件


6

MyBatis官方文档-动态 SQL


7

MyBatis官方文档-Java API


8

MyBatis官方文档-SQL 语句构建器类


9

MyBatis官方文档-日志


10

MyBatis功能架构


11

MyBatis工作原理


12

MyBatis核心类


13

MyBatis面试宝典


14

MyBatis实现一对一,一对多关联查询


15

MyBatis缓存



Hibernate

Shiro

Spring Security

Netty

搜索引擎

Lucene/Solr

Elasticsearch

ELK

中间件

消息中间件

RabbitMQ

RocketMQ

ActiveMQ

Kafka

远程过程调用中间件

Dubbo

数据访问中间件

Sharding JDBC

MyCat

Web应用服务器

Tomcat

待整理:Tomcat各组件作用 Tomcat集群 Tomcat面试题


序号

内容

链接地址

1

Win10安装Tomcat服务器与配置环境变量


2

Linux(CentOS7)安装Tomcat与设置Tomcat为开机启动项


3

Tomcat与JDK版本对应关系,Tomcat各版本特性


4

Tomcat目录结构


5

Tomcat乱码与端口占用的解决方案


6

Tomcat系统架构与请求处理流程


7

史上最强Tomcat8性能优化



Nginx

缓存

本地缓存

客户端缓存

服务端缓存

web缓存,Redis,Memcached,Ehcache

其他

Zookeeper

微服务与分布式

Spring Boot


序号

内容

链接地址

1

application.yml与bootstrap.yml的区别


2

一分钟了解约定优于配置



Spring Cloud


序号

内容

链接地址

1

Spring Cloud入门-十分钟了解Spring Cloud


2

Spring Cloud入门-Eureka服务注册与发现(Hoxton版本)


3

Spring Cloud入门-Ribbon服务消费者(Hoxton版本)


4

Spring Cloud入门-Hystrix断路器(Hoxton版本)


5

Spring Cloud入门-Hystrix Dashboard与Turbine断路器监控(Hoxton版本)


6

Spring Cloud入门-OpenFeign服务消费者(Hoxton版本)


7

Spring Cloud入门-Zuul服务网关(Hoxton版本)


8

Spring Cloud入门-Config分布式配置中心(Hoxton版本)


9

Spring Cloud入门-Bus消息总线(Hoxton版本)


10

Spring Cloud入门-Sleuth服务链路跟踪(Hoxton版本)


11

Spring Cloud入门-Consul服务注册发现与配置中心(Hoxton版本)


12

Spring Cloud入门-Gateway服务网关(Hoxton版本)


13

Spring Cloud入门-Admin服务监控中心(Hoxton版本)


14

Spring Cloud入门-Oauth2授权的使用(Hoxton版本)


15

Spring Cloud入门-Oauth2授权之JWT集成(Hoxton版本)


16

Spring Cloud入门-Oauth2授权之基于JWT完成单点登录(Hoxton版本)


17

Spring Cloud入门-Nacos实现注册和配置中心(Hoxton版本)


18

Spring Cloud入门-Sentinel实现服务限流、熔断与降级(Hoxton版本)


19

Spring Cloud入门-Seata处理分布式事务问题(Hoxton版本)


20

Spring Cloud入门-汇总篇(Hoxton版本)



服务注册发现

服务配置

负载均衡

服务调用

服务限流

熔断降级

网关路由

服务权限

链路追踪

分布式事务

分布式缓存

分布式会话

日志收集

服务监控

消息驱动

数据处理流

自动化测试与部署

第三方支持

分布式协调服务Zookeeper

程序员的一些思考


序号

内容

链接地址

1

程序员写个人技术博客的价值与意义


2

Java知识体系最强总结(2020版)



项目管理

需求调研

项目管理

代码管理

文档管理

测试

运维

常规监控

APM

持续集成(CI/CD):Jenkins,环境分离

自动化运维:Ansible,puppet,chef

测试:TDD 理论,单元测试,压力测试,全链路压测,A/B 、灰度、蓝绿测试

虚拟化:KVM,Xen,OpenVZ

容器技术:Docker

云技术:OpenStack

DevOps

文档管理

操作系统

计算机操作系统

计算机原理

Linux

CPU

进程,线程,协程

推荐书籍

云计算

IaaS、SaaS、PaaS、虚拟化技术、openstack、Serverlsess

搜索引擎

Solr、Lucene、Nutch、Elasticsearch

权限管理

Shiro、Spring Security

区块链

哈希算法、Merkle树、公钥密码算法、共识算法、Raft协议、Paxos 算法与 Raft 算法、拜占庭问题与算法、消息认证码与数字签名

                                </div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-b6c3c6d139.css" rel="stylesheet">
<div class="more-toolbox">
<div class="left-toolbox">
<ul class="toolbox-list">

<li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-thumbsup"></use>
</svg><span class="name">点赞</span>
<span class="count">848</span>
</a></li>
<li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{"mod":"popu_824"}"><svg class="icon" aria-hidden="true">
<use xlink:href="#icon-csdnc-Collection-G"></use>
</svg><span class="name">收藏</span></a></li>
<li class="tool-item tool-active is-share"><a href="javascript:;" data-report-click="{"mod":"1582594662_002"}"><svg class="icon" aria-hidden="true">
<use xlink:href="#icon-csdnc-fenxiang"></use>
</svg>分享</a></li>
<!--打赏开始-->
<!--打赏结束-->
<li class="tool-item tool-more">
<a>
<svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg>
</a>
<ul class="more-box">
<li class="item"><a class="article-report">文章举报</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="person-messagebox">
<div class="left-message"><a href="https://blog.csdn.net/ThinkWon">
<img src="https://profile.csdnimg.cn/0/B/6/3_thinkwon" class="avatar_pic" username="ThinkWon">
<img src="https://g.csdnimg.cn/static/user-reg-year/2x/2.png" class="user-years">
</a></div>
<div class="middle-message">
<div class="title"><span class="tit"><a href="https://blog.csdn.net/ThinkWon" data-report-click="{"mod":"popu_379"}" target="_blank">ThinkWon</a></span>
<span class="flag expert">
<a href="https://blog.csdn.net/home/help.html#classicfication" target="_blank">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-blogexpert"></use>
</svg>
博客专家
</a>
</span>
</div>
<div class="text"><span>发布了227 篇原创文章</span> · <span>获赞 3534</span> · <span>访问量 39万+</span></div>
</div>
<div class="right-message">
<a href="" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-messageboard">他的留言板
</a>
<a class="btn btn-sm bt-button personal-watch" data-report-click="{"mod":"popu_379"}">关注</a>
</div>
</div>
</div>