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