Java知识体系最强总结(2021版)
本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。
整理的Java知识体系主要包括基础知识,工具,并发编程,数据结构与算法,数据库,JVM,架构设计,应用框架,中间件,微服务架构,分布式架构,程序员的一些思考,团队与项目管理,运维,权限,推荐书籍,云计算,区块链等,包含了作为一个Java工程师在开发工作学习中需要用到或者可能用到的绝大部分知识。千里之行始于足下,希望大家根据自己的薄弱点,查缺补漏,根据自己感兴趣的方面多学习,学的精通一点,从现在开始行动起来。路漫漫其修远兮,吾将上下而求索,不管编程开发的路有多么难走,多么艰辛,我们都将百折不挠,不遗余力地去追求和探索。
Java面试总结
Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用到或者可能用到的绝大部分知识。欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。文章持续更新中…
基础知识
Java概述
基础语法
大部分已完成
待整理:
Java开发必会的反编译知识(附支持对Lambda进行反编译的工具)
一文读懂什么是Java中的自动拆装箱
Java的枚举类型用法介绍
类、枚举、接口、数组、可变参数
泛型、序列化
面向对象
待整理:
抽象
继承、封装、多态
接口、抽象类、内部类
集合框架
迭代器、增强for、泛型
IO流
待整理:
File、递归
字节流、字节缓冲流
编码表、编码方式、转换流、序列化、序列化流、打印流、commons-io
网络编程
网络概述、网络模型
Socket原理机制
UDP
TCP/IP
协议、OSI 七层协议、HTTP、HTTP2.0、HTTPS
网络安全
XSS、CSRF、SQL注入、Hash Dos、脚本注入、漏洞扫描工具、验证码
DDoS防范、用户隐私信息保护、序列化漏洞
加密解密、对称加密、哈希算法、非对称加密
服务安全、数据安全、数据备份
网络隔离、登录跳板机、非外网分离
认证、授权
常用API
String、StringBuffer、StringBuilder、正则表达式
Number、Radom、Math、System、包装类
Arrays、Collections
日期时间API
常用工具类库
待整理:OkHttp、commons-lang3
单元测试
JUnit
异常
日志
Java8新特性
工具
IDEA
Eclipse & STS
Maven
Docker
Git
GitLab
GitKraken
Navicat
并发编程
基础知识
并发理论
并发关键字
Lock体系
待整理:
公平锁 & 非公平锁
乐观锁 & 悲观锁
可重入锁 & 不可重入锁
互斥锁 & 共享锁
死锁
并发容器
线程池
原子操作类
并发工具
并发实践
数据结构与算法
数据结构
1、数组
2、栈
3、队列
4、链表
5、树
二叉树
完全二叉树
平衡二叉树
二叉查找树(BST)
红黑树
B,B+,B*树
LSM 树
字段是不是数据结构
算法
语言只是编程工具,算法才是编程之魂!
1、排序算法:快速排序、归并排序、计数排序
2、搜索算法:回溯、递归、剪枝
3、图论:最短路径、最小生成树、网络流建模
4、动态规划:背包问题、最长子序列、计数问题
5、基础技巧:分治、倍增、二分法、贪心算法
宽度优先搜索
深度优先搜索
广度优先
双指针
扫描线
朴素贝叶斯
推荐算法
排序算法
LeetCode
数据库
Oracle
MySQL
数据库基础知识
数据类型
引擎
索引
三大范式
常用SQL语句
存储过程与函数
视图
MySQL优化
事务
数据备份与还原
Redis
Java虚拟机
深入理解Java虚拟机
架构设计
高可用架构
高并发架构
可伸缩架构
集群
设计模式
常用设计模式
创建型:
单例模式、工厂模式、抽象工厂模式
结构型:
适配器模式、外观模式、代理模式、装饰器模式
行为型:
观察者模式、策略模式、模板模式
创建型模式
结构型模式
行为型模式
J2EE模式
实践应用
应用框架
如何学习一个框架或者技术
-
是什么,简介,概述
-
有什么用,用途,使用场景
-
怎么用,在实际开发中的应用,注意事项
-
优缺点
-
框架原理,工作流程,工作原理
-
常见面试题
-
源码分析,核心类,核心方法,设计模式
-
发布博客,在开发和实践中,博客反馈中持续改进
-
与同事朋友交流,技术论坛,技术分享中持续丰富知识
常用框架
-
集成开发工具(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
《Spring实战》读书笔记
Spring MVC
MyBatis
MyBatis 源码分析
Quartz
Hibernate
Shiro
Spring Security
Netty
搜索引擎
Lucene/Solr
Elasticsearch
ELK
中间件
消息中间件
RabbitMQ
RocketMQ
ActiveMQ
Kafka
远程过程调用中间件
Dubbo
数据访问中间件
Sharding JDBC
MyCat
Web应用服务器
Tomcat
待整理:Tomcat各组件作用 Tomcat集群 Tomcat面试题
Nginx
缓存
本地缓存
客户端缓存
服务端缓存
web缓存,Redis,Memcached,Ehcache
其他
Zookeeper
微服务与分布式
Spring Boot
Spring Cloud
服务注册发现
服务配置
负载均衡
服务调用
服务限流
熔断降级
网关路由
服务权限
链路追踪
分布式事务
分布式缓存
分布式会话
日志收集
服务监控
消息驱动
数据处理流
自动化测试与部署
第三方支持
分布式协调服务Zookeeper
程序员的一些思考
团队与项目管理
需求调研
项目管理
代码管理
文档管理
测试
Python
运维
常规监控
APM
持续集成(CI/CD):Jenkins,环境分离
自动化运维:Ansible,puppet,chef
测试:TDD 理论,单元测试,压力测试,全链路压测,A/B 、灰度、蓝绿测试
虚拟化:KVM,Xen,OpenVZ
容器技术:Docker
云技术:OpenStack
DevOps
操作系统
计算机操作系统
计算机原理
Linux
CPU
进程,线程,协程
CentOS8
推荐书籍
读书笔记
云计算
IaaS、SaaS、PaaS、虚拟化技术、openstack、Serverlsess
搜索引擎
Solr、Lucene、Nutch、Elasticsearch
权限管理
Shiro、Spring Security
区块链
哈希算法、Merkle树、公钥密码算法、共识算法、Raft协议、Paxos 算法与 Raft 算法、拜占庭问题与算法、消息认证码与数字签名