数据结构

1. map的底层存储结构
  • 数组、hash冲突后追加链表,链表太长了转红黑树
2. 如何用两个stack实现一个Queue(编码)
3. 用数组实现一个Queue(编码)

JDK语法

1.你怎么理解函数式接口?Function, Supplier,Consumer 如何使用?(可选)
2. String为何是final的?
3. Object有哪些方法?有什么作用?

多线程

1. ConcurrentHashMap线程安全实现机制
  • 以前是分段锁(减少锁冲突)
  • 现在是CAS实现
2. jdk中乐观锁有哪些实现
3. 线程池的使用
4. 写出一个死锁(编码)
5.ThreadLocal是什么?有什么需要注意的?
  • JVM

    1. 了解哪些垃圾回收算法,JVM的垃圾回收机制
    2. 什么是堆外内存(Direct Memory)(可选)

设计模式

1. 如何初始化单例类
2. 你了解哪些设计模式?你用了哪些设计模式来提高你代码的可维护性?
  • Spring

    1. 你用AOP写过哪些功能
    2. 什么是Srping的动态代理?Spring如果决定使用JDK动态那里还是cglib代理
    3.Controller和RestController有什么区别
    4.

Mysql

1. 什么是索引?主键索引和普通索引有什么区别?
2. 什么是数据库的水平切分和垂直切分?
3. 如何开启一个事务?举个例子,说明下事务是什么?
4. Mysql的redo log和bin log有什么作用?(可选)
5. Mysql支持JSON类型存储吗?支持索引吗?
6. 你平时是如何对Mysql语句进行优化的?

Redis

1. 持久化机制是怎么样的
2. 集群模式下,getKey操作是如何工作的
3. 如何复用redis链接?
  • 使用连接池
  • 如果链接超过一定时间就会因网络问题断掉,如何处理?

    • 定期清除空闲的连接
4. 用过lua脚本吗?怎么用的,每次请求都提交整个脚本吗
5.除了String,你还用过redis的哪些数据类型
  • 只需要第一次提交脚本内容时候生成一个sha值,后续每次通过evalSha直接调用

消息队列(可选)

1. 哪些场景适合用消息队列?
2. 什么是ACK机制
3.kafka的消费者组是做什么的(可选)
4.什么是死信队列(可选)

微服务组件(可选)

1. 为什么要用注册中心?
2. 如何实现配置的热更新?
3. nacos实现热更新的机制是什么?
注:
(可选)的题目需要根据应聘人情况酌情考察。
(编码)的题目是编程题。当然只说思路也是可以的
list是答案,答案只写了基本思路。

yuzhihao
1 声望0 粉丝