Java后端开发知识结构
2020-07-27 23:06:35 4 举报
AI智能生成
Java后端知识结构
作者其他创作
大纲/内容
简介
Java产生的背景
Java语言的编程名人
Java的版本发展,语言特性
Java在编程语言里的排名
编程基础
计算机基础
硬件知识
驱动
CPU
内存
硬盘
网卡
操作系统
Windows
Linux
原理、启动、整体架构
常用命令
用户与权限
shell脚本编程
Mac
文件系统
Windows
FAT
NTFS
ExtFAT
Linux
Ext2
Ext3
Linuxswap
VFAT
Mac
HFS
HFS+
字符集
正则表达式
引擎
DFA
NFA
POSIX NFA
语法
普通字符
非打印字符
特殊字符
限定符
定位符
选择
反向引用
元字符
运算符优先级
匹配规则
基本模式匹配
字符簇
量词
懒惰限定符
捕获分组
计算机网络
OSI七层网络模型
应用层(Application layer)
DNS
HTTP
HTTPS
POP3
SMTP
TELNET
FTP
TFTP
DHCP
websocket
表示层(Presentation layer)
会话层(Session layer)
传输层(Transport layer)
TCP
UDP
网络层(Networlk layer)
IP
数据链路层(Data link layer)
物理层(Physical layer)
数据结构与算法
数据结构
线性表
数组
链表
单链表
双向链表
循环链表
双向循环列表
静态链表
栈
顺序栈
链式栈
队列
普通队列
双端队列
阻塞队列
并发队列
阻塞并发队列
散列表
散列函数
解决冲突
链表法
开放寻址法
动态扩容
位图
树
二叉树
平衡二叉树
二叉查找树
平衡二叉查找树
AVL树
红黑树
完全二叉树
满二叉树
多路查找树
B树
B+树
2-3树
2-3-4树
堆
小顶堆
大顶堆
优先级队列
斐波那契堆
二项堆
其他
树状数组
线段树
图
图的存储
邻接矩阵
邻接表
拓扑排序
最短路径
关键路径
最小生成树
二分图
最大流
算法
复杂度分析
空间复杂度
时间复杂度
最好
最坏
平均
均摊
算法思想
贪心算法
分治算法
动态规划
回溯算法
枚举算法
排序
O(n^2)
冒泡排序
插入排序
选择排序
希尔排序
O(nlogn)
并归排序
堆排序
快速排序
O(n)
计数排序
基数排序
桶排序
搜索
深度优先
广度优先
A*启发式
查找
线性查找
树查找
散列查找
字符串匹配
朴素
KMP
Robin-Karp
Boyer-Moore
AC自动机
Trie
后缀数组
其他
数论
计算几何
概率分析
并查集
拓扑网络
矩阵运算
线性规划
编译原理
工具
文本编辑器
Vim
Emacs
EditPlus
Notepad++
UltraEdit
IDE
Intellij IDEA
Eclipse
JBuilder
NetBeans
JCreator
自动化编译打包工具
Maven
Ant
Gradle
集成部署
Jenkins
代码版本控制
svn
git系列
自建
git客户端
github
gitee
Java SE
基本类型
整型
byte
short
char
int
long
浮点型
float
double
布尔型
boolean
概念
面向对象
封装
继承
多态
JDK、JRE
对象和类
泛型
内存与JVM
类加载
双亲委派
OSGI
GC
GC收集数据类型
算法
分区
线程
进程
语法
命名
关键字
final
static
volatile
synchronized
class
interface
abstract
类
普通类
抽象类
匿名类
内部类
静态内部类
接口
枚举
属性
方法
逻辑控制
if...else
switch...case
for
while
continue
break
return
权限修饰
public
protected
default
private
注解
Lambda表达
包路径
泛型
注释
文档注释
多行注释
单行注释
包装类
Byte
Short
Character
Integer
Float
Double
Boolean
字符串
String
StringBuffer
StringBuilder
容器
数组
集合
Collection
List
ArrayList
LinkedList
Vector
Set
HashSet
LinkedHashSet
SortedSet
TreeSet
Queue
BlockingQueue
Deque
Map
HashMap
HashTable
IdentityHashMap
SortedMap
WeakHashMap
时间与日期
Date
Calendar
SimpleDateFormat
JDK1.8新增java.time包
LocalDate
LocalTime
LocalDateTime
常见的异常与错误
Throwable
Exception
CloneNotSupportedException
InterruptedException
IOException
SQLException
RuntimeException
ArithmeticException
ClassCastException
ConcurrentModificationException
IllegalArgumentException
IndexOutOfBoundsException
NoSuchElementException
NullPointerException
SecurityException
Error
IOError
ReflectionError
ThreadDeath
多线程与并发
线程与线程池
线程与任务
Thread
Runnable
Callable
Future
线程的状态变化
线程池
ThreadPoolExecutor
Executors
newFixedThreadPool
newCachedThreadPool
newScheduledThreadPool
newSingleThreadExecutor
newSingleThreadScheduledExecutor
newWorkStealingPool
任务拒绝策略
线程池的状态变化
锁
sychronized
Lock
死锁
发生条件
互斥
占有且等待
不可抢占
循环等待
避免手段
一次性申请所有的资源
申请不到,主动释放它占有的资源
按序申请资源
活锁
饥饿
等待与通知
常见问题
微观
可见性
有序性
原子性
宏观
安全性
数据竞争
竞态条件
活跃性
饥饿
活锁
性能
表现
吞吐量
延迟
并发量
解决办法
无锁数据结构和算法
ThreadLocal
乐观锁
并发工具类
减少锁的持有时间
并发工具类
原子类
基本数据类型
AtomicInteger
AtomicLong
AtomicBoolean
数组
AtomicIntegerArray
AtomicLongArray
AtomicReferenceArray
累加器
LongAccumulator
LongAdder
DoubleAccumulator
DoubleAdder
引用类型
AtomicReference
AtomicStampedReference
AtomicMarkableReference
属性更新
AtomicIntegerFieldUpdater
AtomicLongFieldUpdater
AtomicReferenceFieldUpdater
显示锁
Lock
Condition
ReadWriteLock
StampedLock
Semaphore
CountDownLatch
CyclicBarrier
并发容器
List
CopyOnWriteArrayList
Set
CopyOnWriteArraySet
ConcurrentSkipListSet
Queue
BlockingQueue
ArrayBlockingQueue
LinkedBlockingQueue
SynchronousQueue
LinkedTransferQueue
PriorityBlockingQueue
DelayQueue
BlockingDeque
LinkedBlockingDeque
ConcurrentLinkedQueue
ConcurrentLinkedDeque
Map
ConcurrentHashMap
ConcurrentSkipListMap
CompletableFuture
CompletionService
并发内存模型
volatile语义增强
happens-before规则
程序次序规则
管程锁定规则
volatile 变量规则
线程启动规则
线程 join() 规则
传递性规则
对象终结规则
指令重排、可见性、原子性、顺序一致性
as-if-serial
ForkJoin框架
IO
单位区分
InputStream
FileInputStream
PipedInputStream
ByteArrayInputStream
BufferedInputstream
SequenceInputStream
DataInputStream
ObjectInputStream
OutputStream
FileOutputStream
PipedOutputStream
ByteArrayOutputStream
BufferedOutputStream
DataOutputStream
ObjectOutputStream
PrintStream
Reader
FileReader
PipedReader
CharArrayReader
BufferedReader
InputStreamReader
Writer
FileWriter
PipedWriter
CharArrayWriter
BufferedWriter
InputStreamWriter
PrintWriter
功能区分
文件操作
FileInputStream
FileOutputStream
FileReader
FileWriter
管道操作
PipedInputStream
PipedOutStream
PipedReader
PipedWriter
字节/字符数组
ByteArrayInputStream
ByteArrayOutputStream
CharArrayReader
CharArrayWriter
缓冲流
BufferedInputStream
BufferedOutputStream
BufferedReader
BufferedWriter
字节转化成字符流
InputStreamReader
OutputStreamWriter
数据流
DataInputStream
DataOutputStream
打印流
PrintStream
PrintWriter
对象流
ObjectInputStream
ObjectOutputStream
序列化流
SequenceInputStream
序列化、反序列化
Serializable
serialVersionUID
static 和 transient 的成员变量不能序列化
NIO
Channel
FileChannel
DatagramChannel
SocketChannel
ServerSocketChannel
Buffer
ByteBuffer
CharBuffer
DoubleBuffer
FloatBuffer
IntBuffer
LongBuffer
ShortBuffer
MappedByteBuffer
HeapByteBuffer
DirectByteBuffer
Selector
open
register
Connect
Accept
Read
Write
JDBC
Driver
DriverManager
Connection
Statement
PreparedStatement
ResultSet
java.net包常用类
InetAddress
Inet4Address
Inet6Address
URL
URI
URLConnection
DatagramPacket
DatagramSocket
Socket
ServerSocket
URLDecoder
URLEncoder
JarURLConnection
反射
Class
Field
Constructor
Method
拷贝
Cloneable
浅拷贝
深拷贝
正则表达式
Pattern
Matcher
数学计算
java.lang.Math
java.util.Random
java.math包
BigDecimal
BigInteger
JMS
awt/swing(主要用图形化界面开发)
数据库
关系型
产品
Mysql
Oracle
SQLite
PostgreSQL
SQL Server
Db2
H2
Derby
HSQLDB
SQL
分类
DDL(Data Definition Language)数据定义语言
DML(Data Manipulatio Language)数据操作语言
DQL(Data Query Language)数据库查询语言
排序查询
聚合函数
分组查询
分页查询
DCL(Data Control Language)数据控制语言
CRUD
Create
Retrieve
Update
Delete
约束
主键约束:primary key
非空约束:not null
唯一约束:unique
外键约束:foreign key
设计范式
多表查询
内连接查询
外连接查询
子查询
事务
概念
四大特征
原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败
持久性:当事务提交或回滚后,数据库会持久化的保存数据
隔离性:多个事务之间,相互独立
一致性:事务操作前后,数据总量不变
隔离级别
read uncommmitted:读未提交(引起脏读、不可重复读、幻读)
read committed:读已提交(引起不可重复读、幻读)
repeatable read:可重复读(引起幻读)
serializable:串行化(效率低)
问题
脏读:一个事务,读取到另一个事务中没有提交的数据
不可重复读:在同一个事物中,两次读取到的数据不一样.
幻读:一个事务操作(DML)数据表中所有记录,另一个事务添加了一条数据,则第一个事务查询不到自己的修改.
非关系型
产品
MongoDb
Redis
HBase
Cassandra
优点
易扩展
高性能
数据类型灵活
高可用
JavaEE Web
前端
HTML/HTML5
javascript
jquery
ajax
框架
vue
AngularJS
React
CSS
各类知名UI组件
图片
svg
canvas
图表
highcharts
echarts
G2
D3
JSP/Servlet
JDBC
EJB
JPA
框架 Struts
Spring体系
Spring
SpringMVC
Hibernate
ibatis/mybatis
日志 JDK自带Logger
log4j
slf4j
logback
Web容器
tomcat
jetty
JBoss
WebLogic
测试
代码测试
JUnit
JTest
TestNG
接口测试
Jmeter
Postman
SoapUI
性能测试
LoadRunner
Jmeter
安全测试
Appscan
AWVS
Nessus
自动化测试
Appium
Selenium
F2etest
Mock
EasyMock
JMock
PowerMock
设计模式
创建型
工厂模式(Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)
单例模式(Singleton Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
结构型
适配器模式(Adapter Pattern)
装饰器模式(Decorator Pattern)
桥接模式(Bridge Pattern)
外观模式(Facade Pattern)
代理模式(Proxy Pattern)
过滤器模式(Filter、Criteria Pattern)
组合模式(Composite Pattern)
享元模式(Flyweight Pattern)
行为型
责任链模式(Chain of Responsibility Pattern)
观察者模式(Observer Pattern)
模板模式(Template Pattern)
命令模式(Command Pattern)
解释器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
策略模式(Strategy Pattern)
状态模式(State Pattern)
备忘录模式(Memento Pattern)
空对象模式(Null Object Pattern)
分布式
基础知识与理论
网络通信
三态
分布式事务
中心化和去中心化
CAP/BASE理论
2PC
最终一致性
TCC
幂等性
架构设计
微服务
SpringBoot
配置
热部署
模板引擎
框架集成
多数据源路由
分布式事务
Spring Cloud Netflix
配置中心
eureka 服务注册与发现
ribbon 客户端负载均衡
fegin 声明式服务调用
hystrix
限流
降级
熔断
监控数据、聚合
Zuul/Gateway统一网关
Sleuth 链路跟踪
Zuul 统一异常处理
Spring Cloud Alibaba
Nacos 服务注册与发现
Sentinel 限流、降级
虚拟容器
Docker
镜像
仓库
容器
搭建环境
DockerFile
DockerCompose 集成式应用组合
Docker 服务编排
Kubernetes
部署
访问
Scale Up/Down
滚动更新
集群
服务治理
协同框架Zookeeper
多节点集群
服务注册与订阅
配置中心
分布式锁
迁移
扩容
监控
RPC服务框架Dubbo
RPC协议
功能、模块
控制管理后台
注册中心
容错
负载均衡
异步调用
过滤器
泛化调用与引用
隐示传参
令牌验证
路由
消息中间件
RocketMq
模块划分与集群
普通消息、顺序消息、事务消息、定时消息
监控与运维
RabbitMq
集群
消息分发与主题消息分布
消息路由机制
消息确认机制
监控平台
镜像队列
ActiveMq
Kafka
集群
副本机制与选举
设计原理
大规模日志系统
缓存中间件
Redis
基本数据类型
哨兵机制
复制
常用命令
Redis Cluster集群与原理
集群分配算法
动态水平扩容
监控
Jedis cluster使用与协议原理
持久化机制
安全机制
性能优化
Memcache
MongoDB
高可用集群
FastDFS
部署
文件存储
文件查询
文件同步
分布式数据存储
读写分离
分库分表
分片算法
hash
list
range
tag
中间件
Mycat
Sharding-JDBC
Atlas
Cobar
TDDL
Amoeba
ShardingSphere生态圈
Sharding-JDBC
Sharding-Proxy
通信
Netty
高性能序列化协议protobuf
搜索引擎
ELK
Elasticsearch
Logstash
Kibana
接入层
负载均衡
组件
f5
LVS
VS/NAT(基于网络地址转换技术)
VS/TUN(基于IP隧道技术)
VS/DR(基于直接路由技术)
Nginx
HAProxy
算法
轮询
随机
随机轮询
源地址哈希
加权轮询
加权随机
优先权
最小连接数
最快响应速度
一致性哈希
纯动态结点
优秀类库
基本操作
Apache Commons
Guava
时间
Joda-Time
字节码
javassist
ASM
数据库连接池
DBCP
c3p0
Druid
pdf
iText
Apache FOP
Apache PDFBox
Xpdf
邮件
JavaMail
Apache Commons Email
HTML解析
JSoup
HTMLParser
http客户端
Apache HttpClient、HttpCore
java.net包类
xml
Dom4j
JDOM
Xstream
Xerces
JAXB
JAXP
json
Jackson
Gson
FastJson
excel
Apache POI
JXL
word
POI
POI-TL
docx4j
FreeMarker
JACOB
java2word
图片
Thumbnails
SimpleImage
image4j
JDK自带
二维码
ZXing
QRCode
加解密
JDK自带
Apache Commons Codec
模板
Velocity
FreeMarker
Thymeleaf
JSP
图表
JFreeChart
JasperReports
验证码
Patchca
JCaptcha
必读源码
JDK
Junit
guava
Apache Commons 系列
lucene
netty
spring 系列
MyBatis
dubbo
tomcat
常见功能
消息队列
JMS
kafka
RocketMQ
RabbitMQ
ActiveMQ
缓存
产品
本地缓存
Java单例属性
EhCache
guava cache
Caffeine
客户端缓存
浏览器缓存
App缓存
服务端缓存
Redis
MemCache
web服务器,如nginx
CDN
常见问题
缓存穿透
缓存击穿
缓存雪崩
缓存刷新
持久化
数据一致性
定时任务
java.util.Timer
ScheduledExecutorService、ScheduledThreadPoolExecutor
Spring @Scheduled
Quartz
权限
Shiro
Spring Security
搜索引擎
全文检索引擎
Lucene
Solr
Elasticsearch
Egothor
Nutch
图片搜索
LIRE
通信
Netty
扩展
大数据
0 条评论
下一页