Java后端知识体系结构
2018-07-06 17:31:09 0 举报
AI智能生成
java后端知识体系
作者其他创作
大纲/内容
网络
OSI七层模型
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
TCP/IP五层模式
应用层
传输层
网络层
链路层
物理层
网络编程
IO操作的步骤
发起IO请求
实际IO操作
同步IO
实际IO操作阶段会被阻塞
异步IO
实际IO操作不会被阻塞
阻塞IO
发起IO请求阶段会被阻塞
非阻塞IO
发起IO请求阶段不会被阻塞
3种IO
BIO
NIO
NIO2(AIO)
数据库
数据库与实例
mysql
子主题
基础知识
JVM
内存区域划分
程序计数器
虚拟机栈
本地方法栈
java堆
方法区
运行时常量池
直接内存
GC
判断对象是否已死
引用计数算法
可达性分析算法
枚举根节点
GC Roots
全局性的引用
常量
类静态属性
执行上下文
栈帧里的局部变量表
引用
强引用
软引用
弱引用
虚引用
方法区回收
垃圾回收算法
标记-清除算法
复制算法
优点:不会产生内存碎片
缺点:浪费空间;只适合存活对象少的情况
标记-整理算法
优点:没有内存碎片
缺点:STW时间长
垃圾回收器
新生代
Serial
ParNew
Parallel Scanvenge
吞吐量
老年代
Serial Old
Parallel Old
CMS
主要步骤
初始标记
并发标记
重新标记
并发清除
缺点
对CPU资源敏感
无法清除浮动垃圾
会产生大量空间碎片
G1
特点
并发与并行
分代收集
不需要与其他收集器配合工作
空间整合
整体上用标记-整理算法
两个region间用复制算法
可预测的停顿
主要步骤
初始标记
并发标记
最终标记
筛选回收
Remembered Set
内存分配策略
对象优先进入Eden区
进入老年代的条件
大对象直接进入老年代
长期存活对象会进入老年代
动态对象年龄判断
空间分配担保
jvm调优
命令行
jps
jstat
jinfo
jmap
jhat
jstack
可视化工具
JConsole
VisualVM
JProfile
字节码
动态改变字节码
ASM
类加载
类加载过程
加载
连接
检验
准备
解析
初始化
立刻初始化的时机
new、getstatic、putstatic、invokestatic
反射调用
子类初始化导致父类的初始化
双亲委派
加载器
启动类加载器
扩展类加载器
应用程序类加载器
破坏双亲委托
基础
集合类
Map
HashMap
CocurrentHashMap
HashTable
TreeMap
Set
HashSet
LinkedHashSet
List
ArrayList
LinkedList
Vector
子主题
并发编程
java内存模型
并发编程的2个关键问题
线程间如何通信
线程间如何同步
JMM
线程本地内存
主内存中的共享变量
重排序
编译器重排序
处理器重排序
指令级重排序
内存系统重排序
happen-before
volatile
内存屏障
final
子主题
synchronized
偏向锁
优点
缺点
适用场景
轻量级锁
优点
缺点
适用场景
重量级锁
优点
缺点
适用场景
三个特性
可见性
原子性
有序性
锁
ILock
AQS
ReentrantLock
重写tryAcquire和tryRelease
ReentrantReadWriteLock
重写tryAcquireShare和tryReleaseShare
阻塞队列
ArrayBlockingQueue
LinkedBlockingQueue
PriorityBlockingQueue
DelayQueue
SynchronousQueue
LinkedTransferQueue
LinkedBlockingDeque
Fork/Join框架
并发工具类
CountDownLatch
CyclicBarrier
Semaphore
Exchanger
Java线程池
ThreadPoolExector
Exectors
设计模式
单例模式
懒汉(lazy init)
synchronized method
double checked locking
内部类
枚举
饿汉
代理模式
静态代理
动态代理
jdk动态代理
cglib动态代理
子主题
收藏
0 条评论
下一页