数据结构
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 是答案,答案只写了基本思路。