Java复习大纲
2023-06-06 19:10:48 0 举报
AI智能生成
test
作者其他创作
大纲/内容
计算机基础
计算机操作系统
计算机组成原理
计算机网络
网络与IO模型
计算机编译原理
算法和数据结构(初级)
Java基础
数据类型
基本数据类型
int
double
boolean
float
long
byte[]
short
char
包装数据类型
Integer
Long
Float
Boolean
Byte
Double
Character
Short
常见引用数据类型
String
StringBuffer
StringBuilder
运算符
算数运算符
关系运算符
位运算符
逻辑运算符
赋值运算符
其他运算符
方法定义、调用、重载
数组
异常
Java 内置异常类
非检查型异常
检查性异常
异常方法
捕获异常
throws/throw关键字
finally关键字
常用类
集合
单值存储
Collection接口
有序集合List
ArrayList
LinkedList
无序集合Set
HashSet
LinkedHashSet
TreeSet
key、Value存储
Map接口
HashMap
TreeMap
Hashtable
IO流
输入流
输出流
多线程
实现方式
1、继承Thread类 重写run()方法,调用thread.start()启动线程
2、实现Runnable
并发安全
三大特性
原子性
可见性
有序性
线程安全集合
List
Set
Map
网络编程
反射
Lambda表达式
Stream流
JDK新特性
设计模式
git
基础命令
git commit -m "first commit"
git branch newBranch
git checkout <branch>
git merage bugFix
git rebase main
JVM
类装载子系统
类加载过程(生命周期)
加载
链接
验证
准备
解析
初始化
使用
卸载
类加载顺序
类加载器
BootStrap ClassLoader
Extension ClassLoader
Application ClassLoader
自定义类加载器
双亲委派模型
优点
如何打破双亲委派模型
运行时数据区
线程共享
堆
新生代
Eden区
Survivor区
老年代
元空间
线程私有
虚拟机栈
本地方法栈
程序计数器
垃圾收集模块
垃圾回收
GC Roots
可达性分析算法
引用类型
空间担保机制
内存概念
内存泄漏
内存溢出
回收算法
标记-清理
复制
标记-整理
分代收集算法
垃圾回收器
新生代收集器
Serial
ParNew
Parallel Scavenge
老年代收集器
CMS收集器
Parallel Old收集器
Serial Old
G1(garbage first)
JVM实战调优
分析工具
Jvisualvm
MAT(hprof堆日志文件)
GC.log
OOM排查
CPU占用过高
1、top命令锁定CPU使用率高的进程
2、top列出进程下所有线程CPU使用情况
3、输出当前线程nid并记录
4、使用jstack查看pid
堆溢出
1、top命令定位Java服务Pid
2、jmap -heap pid查看堆使用情况
3、导出hprof堆日志文件到本地,使用MAT分析堆内存溢出
调优方式
1、堆溢出增加服务器的配置,给系统足够的内存空间
2、合理设置堆空间,减少Old区存满触发FullGC
3、需要长期存活对象,尽早进入老年代
4、选择适合的垃圾收集器 ParNew+CMS(小系统)
执行引擎
本地方法接口
设计模式
并发编程
概念
进程和线程
数据库相关技术
MySQL
MySQL基础
事务ACID
原子性
一致性
隔离性
持久性
隔离级别
读未提交
读已提交
可重复读
串行化
体系架构
客户端
发送请求
服务端
连接器
分析器
1、查询缓存
2、分析
词法分析
语法分析
预处理
优化器
执行器
存储引擎
InnoDB
MyISAM
存储层
MySQL进阶
索引
索引分类
主键索引
唯一索引
组合索引
普通索引
全文索引
索引结构
B-Tree
B+Tree
Hash
索引创建原则
1、查询列比较频繁的字段、区分度高的字段可以建立索引
2、order by或者group by 的字段建立索引降低CPU的消耗
3、联合索引创建中最左字段合适选择,尽量使用覆盖索引查询
4、索引创建数量有限制,不是创建越多越好,索引需要动态维护
索引失效
最左前缀法则
模糊匹配
隐式转换
索引列上使用函数
使用or关键字可能导致失效
范围查询
全表扫描情况
索引优化
SQL执行频率
慢查询日志
使用profile详情
Explain执行计划
索引名词
索引覆盖
回表
索引下推
其他
SQL提示
锁
全局锁
表级锁
表锁
读锁
写锁
元数据锁(并发修改表结构)
意向锁
行级锁
行锁
间隙锁
临建锁
存储引擎(InnoDB)
逻辑存储结构
表空间(Tablespace)
段(sagment)
区(Extent)
页(Page)
行(row)
架构
内存结构
Buffer Pool
free Page 空闲页
clean Page 使用页
dirty Page 脏页
Change Buffer
Log Buffer
自适应hash索引
磁盘结构
System Tablespace(系统表空间)
General TableSpaces(通用表空间)
Undo TableSpaces(撤销表空间)
Temporary TableSpaces
Doublewrite Buffer Files(双写缓冲区)
Redo Log
后台线程
Master Thread
IO Thread
Purge Thread
Page Cleaner Thread
事务原理
原子性、一致性、持久性
Redo Log(持久性)
Undo Log(原子性回滚)
隔离性
MVCC
快照读
表隐式字段
trx_id(最后一次事务修改的ID)
roll_pointer(回滚指针)
row_id(隐藏主键)
uodo log
read view
锁
当前读
MVCC
Mysql 系统数据库
mysql
infomation_schema
performance_schema
sys
MySQL优化
硬件方面
架构方面
高并发
读写分离架构(分库)
增加缓存解决并发压力
大数据量
分表
垂直拆分
水平拆分
根据时间拆分多张表
根据Hash计算拆分表
SQL优化
排查方式
1、定位慢查询sql
2、对慢SQL执行Explain查看计划
3、根据show profile 查看具体sql 执行情况(占用CPU消耗)
语句优化
插入操作优化
更新操作优化
主键优化
limit分页优化
排序Order by
分组Group by
count()
MySQL运维
日志
二进制日志文件BinLog
STATEMENT
ROW
MIXED
慢查询日志 localhost-show
主从复制
分库分表
介绍
垂直拆分
垂直分库
垂直分表
水平拆分
水平分库
水平分表
实现
shardingJDBC
MyCat
读写分离
Redis
持久化方式
RDB
AOF
常见数据类型
String
基本数据类型
Token
验证码
session
List
有序集合
文章列表
评论列表
消息列表
Hash
Key-Value类型数据
用户信息
商品信息
Set
无序集合不可重复
点赞功能(点赞用户集合)
反向筛选共同好友
Zset
使用场景
缓存
高性能
基于内存数据库,读写速度非常快
单线程,没有线程上下文切换CPU消耗
多路 IO 复用
高并发
单机Redis可抗10WQPS,为数据库分担压力
计数器
分布式session、token
消息队列
分布式锁
高可用架构
读写分离
哨兵机制
如何开启
子主题
子主题
子主题
Redis Sentinel启动集群
选举策略
Redis高级用法
消息队列
点对点
做进右出,LPUSH+BRPOP
pub/sub 发布订阅
消息列表
pipeline(管道)
一次发送多条命令执行,返回结果
Redis+Lua
分布式锁
事务
常见问题及解决方案
缓存失效
缓存穿透
缓存击穿
缓存雪崩
BigKey
影响
线程阻塞
网络流量带宽消耗高
解决方式
分成多个小Key存储
MongoDB
JDBC相关技术
缓存技术
本地缓存
cache
GuavaCache
Caffeine
分布式缓存
Spring全家桶
Spring
SpringMVC
SpringBoot
SpringCloud
消息中间件
Linux
SSH秘钥登录
个人方面
团队协作方面
0 条评论
下一页