首发于 JAVA

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

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

Java面试复习体系总结看之前这篇文章:

Java面试总结

Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用到或者可能用到的绝大部分知识。
  1. Java基础知识面试题(2021最新版)
  2. Java集合容器面试题(2021最新版)
  3. Java异常面试题(2021最新版)
  4. 并发编程面试题(2021最新版)
  5. JVM面试题(2021最新版)
  6. Spring面试题(2021最新版)
  7. Spring MVC面试题(2021最新版)
  8. Spring Boot面试题(2021最新版)
  9. Spring Cloud面试题(2021最新版)
  10. MyBatis面试题(2021最新版)
  11. Redis面试题(2021最新版)
  12. MySQL数据库面试题(2021最新版)
  13. 消息中间件MQ与RabbitMQ面试题(2021最新版)
  14. Dubbo面试题(2021最新版)
  15. Linux面试题(2021最新版)
  16. Tomcat面试题(2021最新版)
  17. ZooKeeper面试题(2021最新版)
  18. Netty面试题(2021最新版)
  19. 架构设计&分布式&数据结构与算法面试题(2021最新版)

基础知识

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依赖下载失败解决方案
  3. 在IDEA中使用Linux命令

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
  2. 虚拟机和容器有什么不同
  3. Docker 从入门到实践系列一 - 什么是Docker

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、数组
    完全二叉树
    平衡二叉树
    二叉查找树(BST)
    B,B+,B*树
    LSM 树
字段是不是数据结构

算法

语言只是编程工具,算法才是编程之魂!
1、排序算法:快速排序、归并排序、计数排序
2、搜索算法:回溯、递归、剪枝
3、图论:最短路径、最小生成树、网络流建模
4、动态规划:背包问题、最长子序列、计数问题
5、基础技巧:分治、倍增、二分法、贪心算法
宽度优先搜索
深度优先搜索