来源1 2022-04-11

来源:https://ac.nowcoder.com/discuss/857347?type=2&order=3&pos=2&page=0&channel=-1&source_id=discuss_center_2_nctrack

  • Cookie 和 Session 的区别

    https://juejin.cn/post/6844904034181070861

    Cookie Session
    存储在浏览器端 存储在服务器端
    安全性较差 安全性好
    可设定为长时间有效 关闭浏览器即失效
  • InnoDB 和 MyISAM 区别

    InnoDB MyISAM
    有外键 没有外键
    以行为单位加锁,高并发 以表为单位加锁,速度快
    聚簇索引 非聚簇索引
    支持事务 不支持事务
    崩溃恢复性好 崩溃恢复性不好
  • 索引是怎么实现的?【没细看】

  • 聚簇索引和非聚簇索引

    自答:聚簇索引的子节点存储的信息的内存地址,非聚簇索引的子节点是主键的id。当一个表有主键即有主键索引时,主键就是聚簇索引,当没有主键的时候,数据库就会自己去寻找第一个具有唯一性的一列建立聚簇索引,如果前边两者都不存在,那么数据库会自己创建一个隐藏的聚簇索引。

  • 什么是索引覆盖?

    解释一: 就是select的数据列只用从索引中就能够取得,不必从数据表中读取,换句话说查询列要被所使用的索引覆盖。
    解释二: 索引是高效找到行的一个方法,当能通过检索索引就可以读取想要的数据,那就不需要再到数据表中读取行了。如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫 做覆盖索引。
    解释三:是非聚集组合索引的一种形式,它包括在查询里的Select、Join和Where子句用到的所有列(即建立索引的字段正好是覆盖查询语句[select子句]与查询条件[Where子句]中所涉及的字段,也即,索引包含了查询正在查找的所有数据)

  • redolog与undolog 【还没看】

    https://blog.csdn.net/wdjnb/article/details/121696964

    • redo log的主要功能是用于数据库崩溃时的数据恢复。
    • undo log存在的意义是确保数据库事务的原子性,即回滚操作。
      • 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
  • 哪个阶段会出现stop the world问题【还没细看】

  • HashMap

    • put流程
      • 如果集合为空,那么初始化
      • 计算Hash值,寻找插入位置
      • 如果插入的位置为空,直接插入
      • 如果插入位置有元素,是链表的话,遍历到末尾插入,红黑树按照红黑树的方法插入
      • 如果链表的长度大于8并且集合总容量大于64,那么将链表结构转换为红黑树结构
      • 检查是否需要扩容
    • 数组对应的节点是什么
    • 为什么后来数据量大了就改红黑树了呢?
      • 减少查询时间
    • 并发情况下有什么问题?
      • 扩容时产生死循环
      • size不准确
    • 如何解决?
      • ConcurrentHashMap
  • ConcurrentHashMap是如何解决并发问题的?

  • 操作系统中一页的大小是多少?

    • 4KB
  • 2pl协议是什么

  • 平时怎么学习的呢?如何学习新知识?

常识回顾:

  • Java内存区域

    • 线程共享

        • 对象
      • 方法区
        • 1.8之前以永生代的形式实现,1.8之后以元空间的方法实现
        • 类型信息、静态变量、常量
        • 运行时常量池:类的常量池表在被加载后存放在该位置
    • 线程私有

      • 程序计数器

        • 为了使线程切换后,能够回到正确的运行位置
      • 虚拟机栈

        每一个方法的调用,都伴随着一个栈帧的入栈和出栈

        • 局部变量表:数据类型、中间引用
        • 操作数栈:存储一些中间计算结果和临时变量
        • 动态链接:当一个方法要调用其他方法,需要将常量池中指向方法的符号引用转化为其在内存地址中的直接引用
        • 方法出口
      • 本地方法栈

        • 和虚拟机栈类似,用于服务native方法