Files
logseq-1/journals/2024_07_01.md

3.9 KiB
Raw Blame History

  • 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操作系统决定一般30s1SAlways
      • 存储的不是数据,而是操作命令
      • 存在重写的过程,实时性较好,恢复的速度较慢
  • 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 ab 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
    • ControllerRestController
    • Service
    • Compoment
    • Repository
  • Spring Boot自动装配原理 #card #java
  • Spring Cloud组成 #card #java
  • 负载均衡如何配置 #card #java
  • 网关如何转发请求 #card #java