Java基础
- Hashmap数据结构是怎样的?如何新增键值对?是否线程安全的?什么是hash冲突?如何解决hash冲突?什么情况下发生扩容?如何扩容?为什么引入红黑树?什么时候会出现链表转红黑树?
- 用什么Map是线程安全的?数据结构怎样的?如何保证线程的安全?说说底层如何实现?
- ThreadLocal底层实现是什么?
- 什么是乐观锁?什么是悲观锁?分别如何实现?实践中如何选择?原因是什么?
- Lock与synchronized有什么区别?底层实现如何?AQS?CAS?说说synchronized锁升级是怎么回事?
- 说说线程池怎么使用的?有哪些参数?执行过程是怎么样的?他的参数如何设置?拒绝策略有哪些?如何得到线程执行结果?
- 说说有哪些阻塞队列?为什么要用阻塞队列?如何实现阻塞队列?
- volitile有哪些特性?工作原理是什么?
- 创建线程有哪些方式?如何返回线程执行的结果?
- 你知道有哪些IO么?他们有什么特点?什么场景会使用到?
Mysql
- 你知道mysql有哪些存储引擎么?默认使用哪个?二者区别有哪些?
- 什么是索引?为什么要用索引?常见的索引数据结构有哪些?mysql采用的什么数据结构?为什么?
- 什么是主键索引和辅助索引?工作原理是什么?
- 你是如何优化sql的?
- 事务有哪些特性?如何保证数据的一致性?
- 数据库的事务隔离级别有哪些?会出现哪些问题?解决了哪些问题?
- 什么是MVCC?Mysql中innodb如何解决幻读的问题?
- 谈一谈分库分表的实践?
- 分页查询如何优化(千万级的数据表)
Spring
- Spring用到的两大技术是什么?分别指什么?
- SpringBean的生命周期?具体谈谈如何创建bean?如何解决循环依赖问题?
- 说说Spring的AOP用到哪些技术?底层怎样实现的?
- 学习Spring框架过程中,用到了哪些设计模式?
- 什么是单例模式?实现方式有哪几种?有什么区别(优缺点)?
- 说说SpringMVC的执行过程是怎么样的?
- Spring定义的事务传播特性有哪些?工作原理是什么?
- bean是安全的么?如何实现安全?线程隔离使用什么?
Dubbo
- 谈谈对dubbo的理解?为什么要用dubbo?它与http调用有哪些优势劣势?
- 什么是rpc?
- dubbo的工作原理如何?
- dubbo的服务发布过程怎样的?
- dubbo的服务消费过程怎样的?
- 有哪些注册中心?推荐使用什么?
- 如何进行容错容灾?
- dubbo的超时重试机制是怎样的?
Kafka
- 你知道的消息队列中间件有哪些?他们有什么区别?
- Kafka的工作原理如何?你为什么会选择kafka?
- kafka如何保证高吞吐、高并发?
- 你工作中有用kafka的特性解决什么问题?
Redis
- 为什么要用redis?他有哪些特性?
- 常见的数据结构有哪些?你都用到过哪些?
- redis的分布式锁如何实现的?会有哪些问题?
- 具体谈一谈redis集群的部署架构有哪些?有什么优缺点?
- 说说redis的持久化方式有哪些?分别的工作原理如何?
- 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?什么是穿刺?
JVM
- 讲一下jvm的内存模型?具体介绍下每一块存储的信息?
- GC分为哪些区?GC是如何发生的?
- 如何确定垃圾?什么是GC ROOT?哪些对象可以作为GC ROOT?
- 有哪些垃圾回收算法?分别怎么工作的?
- 有哪些垃圾收集器?如何工作的?
- 请说说几种导致OOM的场景?如何排查生产环境OOM问题?
- 类的加载过程?类加载器有哪些?什么是双亲委派模型?双亲委派机制可以规避么?
网络协议
- http与https的区别?https的工作原理?
- 什么三次握手四次挥手?为什么需要三次握手四次挥手?