面经记录

155 阅读1分钟

Java

  • 泛型的底层原理

算法题:

  • 判断字符串是否是回文串
  • A,B两个线程轮流打印1到100
  • 两个栈实现队列 JVM
  • xss是什么意思
  • 弱引用、软引用、虚引用
  • 栈溢出和堆溢出
  • yongGC的流程是怎样的,为什么需要两个s区

多线程

  • CAS问题,为什么会导致CPU飙升
  • 解释什么是内存屏障
  • 解释什么是乐观锁、悲观锁
  • 解释Synchronized关键字
  • 比较Synchronized和Lock的区别
  • 几种常用线程池的特性及使用场景
  • 线程的几种状态
  • nio处于线程的什么状态(这道题真的蒙了)

MySql

  • 什么是回表
  • 什么是表空洞
  • 主键索引和二级索引的区别
  • redo、undo、binlog三种日志模型

Redis

  • redis的脑裂问题
  • redis的缓存崩溃
  • redis的zset的底层结构为什么用跳跃表,不用平衡二叉树或者是红黑树

其他

  • kafka为什么要在主节点上读写
  • 如何排查fullGC
  • 一致性算法的原理及实现
  • 实现一个高可用的分布式锁
  • 实现限流算法
  • 设计模式知道哪些
  • 解释责任链模式
  • 面向组合,少用继承