- 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