计算机学习
2021-06-20 22:35:54 0 举报
AI智能生成
java学习的整理
作者其他创作
大纲/内容
计算机
CPU
AUL
寄存器
内存
硬盘
线程
状态
阻塞状态
运行状态
线程安全
进程
通信
请求协议
http
https
请求方式
get
post
put
session
cookie
数据库
MySQL
基础
局部变量
公告变量
sql执行原理
高级
存储过程
编写语法
调用语法
函数
having
优化
减少数据库搜索引擎
放弃索引的操作
放弃索引的操作
where null
where xxx or where xxx
where 后跟操作符 比如 >
where 字段加操作 where num/2 = 100
where 字段+ 函数 where substring(1,2,num) = 100
in 语句
like 语句
索引
创建
原理
优化
sql慢查询
原因
如何发现
慢查询分析工具
pt-query-digest
mysqldumpslow
查询
join的表很大的时候
选择分成多条语句查询
选择分成多条语句查询
sql server
mybatis
hibernate
数据库连接池
JDBC+proxxol
数据库事务
JDK
反射
子主题
集合和数组
集合
Collection
List
ArrayList
LinkedList
Set
HashSet
LinkHashSet
TreeSet
Map
HashMap
LinkHashMap
WeakHashMap
HashTable
TreeMap
数组
3大差别
长度区别
数组固定
集合是可变的
内容区别
数组的内容可以是引用类型的数据,也可以是基本类型(直接是数据本身)
集合只能是引用类型数据
元素内容
数组只能有一种数据类型
集合可以有多种,但一般也会只是一种
String
String的更新
String 优化
intern 方法
StringBuilder
StringBuffer
split( )
字符串常量池
正则表达式
所有对象
markword
分代年龄 - 4个bit
class pointer - 指针
instance data - 对象内部数据
padding 对齐
. hashCode()
java的引用
强引用
用户态
内核态
JVM
new 对象
hotSpot
类加载器
类的加载过程
分类
引导类加载器
自定义加载器
系统加载器
1、加载Loading
2、解析Linking
3、初始化
双亲委派机制
JVM参数
跟踪参数
堆分配参数
栈分配参数
垃圾回器
整堆收集器
G1
响应速度+吞吐量目前最好
region
eden=新生代
survivor-survivor代
odl-老年代
humongous-大块对象
垃圾回收模式
YoungGC
Mixed GC
Full GC
产生原因
标记压缩算法+复制算法
计算
ZGC
Shenaandoah
分代收集器
ParNew + CMS
CMS
作用于老年代
复制压缩算法
响应速度优先
ParNew
作用于新生代
复制算法
响应速度优先
Serial + SerialOld
Parallel Scavenge + Parallel Old
作用于新生代 + 老年代
三色标记算法
吞吐量优先
垃圾回收算法
三色标记法
复制算法
标记-压缩算法
高性能
低延迟
高并发
调优工具
arthas
常用参数
热点代码编译器 - JIT
j9-ibm的jvm
堆内存
栈内存
数据结构
C , C++
C , C++
指针
变量初始化
数组
一维数组
结构体
Java对象布局
markword
标记位
标记位
锁信息
GC的信息
Hasecode
指针
子主题
多线程
锁
synchronized
锁升级
1、无锁态
2、偏量锁
3、轻量级锁/自旋锁
自旋次数和占多大资源就变成重量锁是可以设置的,
但是最好使用JVM默认参数
但是最好使用JVM默认参数
4、重量级锁
这个时候,锁是非公平的还是公平的,也就是线程先来先用还是抢到先用
锁降级
锁消除
粗化锁
lock comxchg 指令
CAS锁
volatile
1、保证线程可见性
2、cpu来保证每个线程都拿到相同的数据
cache line---补行写法
3、防止指令重排
分布式锁
基于数据库的
基于Redis缓存的
基于zookeeper的
线程切换
超线程
异步多线程
Future Task
分布式多线程
缓存
redis
存储结构
map
list
json
memcached
算法
时间复杂度
数组中的排序
冒泡排序
选择排序
插入排序
快速排序
OOP七大原则
OOP即面向对象
OOP即面向对象
开闭原则
对扩展开启,对修改关闭
对扩展开启,对修改关闭
里氏替换原则
子类集成父类,尽量不要改变原有父类的方法
子类集成父类,尽量不要改变原有父类的方法
依赖倒置原则
面向接口编程,不要面向实现编程
面向接口编程,不要面向实现编程
单一职责原则
所有的类、接口、方法遵循原子性
所有的类、接口、方法遵循原子性
接口隔离原则
为各个类建立单独的接口
为各个类建立单独的接口
迪米特法则
只与之间关系的类交互,不去和陌生类交互
例:现有imp层,server层,dao层。imp层尽量不要直接操作dao而是通过中间类
只与之间关系的类交互,不去和陌生类交互
例:现有imp层,server层,dao层。imp层尽量不要直接操作dao而是通过中间类
合成复用原则
尽量少使用集成,多使用组合或聚合
尽量少使用集成,多使用组合或聚合
应用设计模式
创建型模式
单例模式
饿汉式
懒汉式
工厂方法模式
简单工厂模式
工厂方法模式
抽象工厂模式
建造者模式
原型模式
结构型模式
适配器模式
桥接模式
组合模式
装饰模式
外观模式
亨元模式
代理模式
静态代理
动态代理
CGLib
动态代理和CGLib区别
行为型模式
访问者模式
模板模式
策略模式
状态模式
观察者模式
备忘录模式
中介者模式
迭代器模式
解释器模式
命令模式
责任链模式
开源框架
spring
IOC
AOP
bean对象的生命周期
创建ApplicationContext对象
AbstractApplicationContext
refresh( )方法
312
常用注解
@RequestMapping
核心注解
SpringMvc
工作原理
Sprin Boot
springCloud Alibaba
Hystrix
熔断
降级
资源隔离
消息中间件
RocketMQ
支持事务
功能多余其他中间件
不断迭代
类似kafuka 的Java版本
使用底层代码去操作,所以效率高
使用底层代码去操作,所以效率高
线程池
创建方式
Executors 方式
缺点
自定义大小创建
线程池自身状态
线程池管理任务
任务执行机制
线程池管理线程
容器
docker
k8s
jenkins
ELK
部署方式
配置L去抽取日志
E的用法
自由主题
收藏
0 条评论
下一页