Java知识点
2021-03-01 14:40:10 17 举报
AI智能生成
java 面试知识点,觉得不错给个赞吧
作者其他创作
大纲/内容
计算机网络
层
OSI七层协议
TCP/IP四层协议
五层协议
三次握手
为什么要三次握手
四次挥手
MySQL
数据库引擎
MyISAM
InnoDB
索引
优化
最左前缀匹配
避免冗余索引
事务
ACID
原子性
一致性
隔离性
持久性
问题
脏读
丢失修改
不可重复读
幻读
事务隔离级别
读未提交(READ-UNCOMMITTED)
读已提交(READ-COMMITED)
可重复度(REPEATEABLE-READ)
可串行化(SERIALIZABLE)
锁
Record lock
Gap lock
Next-key lock
大表优化
限定数据范围
读写分离
垂直分区
优点
缺点
水平分区
数据库连接池
Netty
I/O
BIO
NIO
AIO
核心组件
Bytebuf(字节容器)
Bootstrap(客户端启动类)和ServerBootstrap(服务端启动类)
Channel(网络操作抽象类)
EventLoop(事件循环)
JVM
数据区
线程共享
方法区
直接内存
堆
新生代
S0,S1
老年代
永久代
线程私有
Java虚拟机栈
局部变量表
操作数栈
动态链接
方法出口
为什么私有?
本地方法栈
为什么私有
程序计数器
为什么私有
GC
算法<br>
可达性分析
过程
STW
并发
进程
线程
NEW
初始状态,线程被构建,但还没有调用start()方法
RUNNABLE
READY
RUNNING
BLOCKED
阻塞状态,表示线程阻塞于锁
WAITING
等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程做一些特定的动作(通知或中断)
TIME_WAITING
超时等待状态,可以在指定的时间自行返回
TERMAINATED
终止状态,表示当前线程已经执行完毕
锁
公平锁
非公平锁
可重入锁
不可重入锁
自旋锁
volatile
new对象经过三个步骤
1. 为对象分配内存地址
2. 初始化对象
3. 将对象指向分配的内存地址
synchronized
修饰实例方法
对象锁
修饰静态方法
当前class上锁
修饰代码块
synchronized(this|object) 表示进入同步代码块前要获取对象的锁
synchronized(类.class)表示进入同步代码块前要获取类的锁
AQS
ReentrantLock(可重入锁)
并发
ThreadLocal
ThreadMap
内存泄露问题
线程池
ThreadPoolExecutor
饱和策略
AbortPolicy
CallerRunsPolicy
DiscardPolicy
DiscardOldestPolicy
公式
CPU密集型(N+1)
IO密集型(2N)
动态线程池
setCorePoolSize(int)<br>setMaximumPoolSize(int)
0 条评论
下一页