98 lines
3.9 KiB
Markdown
98 lines
3.9 KiB
Markdown
- finally #card #java
|
||
- java关键字之一,用于构建try-catch-finally语句块
|
||
- 用于释放资源,关闭连接等
|
||
- finally中的内容会在try和catch结束前执行
|
||
- final #card #java
|
||
- java修饰符关键字
|
||
- 可以修饰变量,类,方法,修饰后的变量不可以被修改,方法无法重写,类无法继承
|
||
- finalize() #card #java
|
||
- Object中的一个方法
|
||
- 当对象要被回收时会被调用,执行一些资源清理的操作
|
||
- 调用的时间是不确定的
|
||
- 手写单例模式 #card #java
|
||
-
|
||
- 用了redis哪些数据结构 #card #java
|
||
- string,存验证码,缓存常用的一些数据
|
||
- hash,存储一些购物车内容
|
||
- redis持久化机制 #card #java
|
||
- redis持久化分为RDB和AOF
|
||
- RDB
|
||
- 存储的是某一时刻内存的镜像副本
|
||
- 对内存占用要求高,创建副本的时候需要有一半的内存
|
||
- 创建的速度较慢,但恢复的速度快
|
||
- AOF
|
||
- 日志追加的方式,可以设置不同的频率,no(操作系统决定,一般30s),1S,Always
|
||
- 存储的不是数据,而是操作命令
|
||
- 存在重写的过程,实时性较好,恢复的速度较慢
|
||
- redis事务 #card #java
|
||
- 原子性,可以让一组命令同时按照顺序执行
|
||
- 没有回滚以及隔离,出错后出错的命令不会执行,其他命令都会执行
|
||
- 需要配合lua脚本来保证执行的时候没有其他命令或lua脚本插入执行
|
||
- redis单线程问题,哪个版本开始有多线程 #card #java
|
||
- 使用单线程可以避免线程间上下文切换带来的额外开销
|
||
- 6.0引入来IO多线程,但是主线程还是单线程
|
||
- java8跟7有什么变化 #card #java
|
||
- completeablefuture
|
||
- locadatetime
|
||
- stream流
|
||
- optional类
|
||
- concurrentHashMap
|
||
- 红黑树 #card #java
|
||
- 一种自平衡的二叉树
|
||
- 可以加快查找元素的速度,但是插入的速度由于需要自平衡会变慢
|
||
- 如何让线程进入等待,有哪些方法 #card #java
|
||
- 使用wait和sleep方法
|
||
- wait和sleep的区别 #card #java
|
||
- wait会释放锁,放入wait等待池中,等待notify和notifyAll唤醒,唤醒后再重新竞争锁
|
||
- sleep不会释放锁,睡眠期间不会占用CPU资源,等待时间到达后继续执行
|
||
- 常用的线程池 #card #java
|
||
- SingleThreadPool
|
||
- FixedThreadPool
|
||
- ScheduleThreadPool
|
||
- CachedThreadPool
|
||
- ForkJoinPool
|
||
- JVM组成 #card #java
|
||
- 程序计数器
|
||
- 虚拟机栈
|
||
- 本地方法栈
|
||
- 堆
|
||
- 元空间
|
||
- 直接内存
|
||
- 栈溢出 #card #java
|
||
- 递归
|
||
- 方法深度超过栈容量
|
||
- 对象过多,栈空间不足
|
||
- mysql 常用数据库引擎及区别 #card #java
|
||
- InnoDB
|
||
- 支持事务,可靠性较好
|
||
- 性能较好,可以提供表锁和行锁
|
||
- 支持聚簇索引
|
||
- MyISAM
|
||
- 不支持聚簇索引
|
||
- 只有表锁
|
||
- 不支持事务
|
||
- 索引原理实现 #card #java
|
||
id:: 668210e1-3980-42b5-ab90-e6c60a7933ba
|
||
- 用于快速查找需要的数据
|
||
- 使用B+树索引,是一种多叉树,非叶子结点不存储数据,因此比B树的高度要更低,同时叶子节点之间使用双向链表连接,支持范围查询
|
||
- 非聚簇索引存储的是主键ID,查询的时候可能需要回表,如果索引覆盖就不需要回表
|
||
- 复合索引需要符合最左匹配的原则,否则会导致索引失效
|
||
- SQL执行顺序 #card #java
|
||
- select a,b from A B left join where group by having order by limit
|
||
- union和union all的区别 #card #java
|
||
- union不会去重复,union all会去重,union性能要更好
|
||
- spring 解决循环依赖问题 #card #java
|
||
- 使用三级缓存架构,解决循环依赖
|
||
- 第一层存放EarlySingletonFactoryObject
|
||
- 第二层存放EarlySingletonObject
|
||
- Spring Bean的原理 #card #java
|
||
- Spring Boot的注解 #card #java
|
||
- Bean
|
||
- Controller,RestController
|
||
- Service
|
||
- Compoment
|
||
- Repository
|
||
- Spring Boot自动装配原理 #card #java
|
||
- Spring Cloud组成 #card #java
|
||
- 负载均衡如何配置 #card #java
|
||
- 网关如何转发请求 #card #java |