1、jvm内存模型,逻辑分区、jvm启动参数设置(初始堆、最大堆大小设置、新生代老年代设置、survivor Eden区作用),cas(compare and switch)机制,minor gc时间多长时间合适
2、synchorized lock锁区别,synchorized锁,偏向锁 -> 自旋锁 -> 轻量级锁 -> 重量级锁
3、kafka 队列数据存储方式 index log,如何保证消息发送成功,如何保证队列数据顺序写入,如何保证消费响应速度,kafka分区的作用,消费者数对于分区数?kakfa处理策略
4、mysql存储引擎有哪些,除了innorDB mysaim,事务的隔离级别,默认可重复读, 事务的实现机制mvcc,redo log,主从复制如何保证数据已经复制集群中从库,主从同步相关问题;索引的原理,B+树,主键索引(簇集索引) 唯一索引 覆盖索引(会读取到内存),二级索引(非主键索引都是二级索引),簇集索引 -> 索引和数据存放在一起,每张表都有!!!行级锁 表级锁 范围锁(锁附近部分记录),
*更新会加锁,写入不加锁,多线程环境下多表更新可以先执行写入操作,后执行更新操作
5、单例模式,care 防止反射、防止序列化、双检锁
6、redis 支持的数据结构、lru算法,zset 底层实现(紧凑列表 or 跳跃表),跳跃表 dict & zskiplist (Range操作),分布式锁,如何防止锁没有释放,锁入侵,redis持久化方式,rdb aof(写入间隔时间 、 条数),redis集群相关问题
7、dubbo spi机制,集群策略(快速失败、失败重试)、应用场景,异步调用
8、线程池底层实现(源码),工作队列,核心线程数、最大线程数(线程池队列满了之后创建新线程,最大并发数),线程池队列,拒绝策略
9、jdk1.8新特性 流(多线程)、接口默认方法、引入新的时间类型 、lamda表达式 、fork join框架。。。,
10、hashmap 数组 + 链表 > 8 ---> 红黑树, jdk1.8,***链表插入采用头插法***,1.8之前扩容会有链表闭环问题,1.8解决了扩容产生链表闭环问题,但仍然有丢数据问题,*concurrenthashmap 锁机制,节点加锁
11、bio、nio、aio、io复用、信号驱动io
12、netty nio模型,eventloop eventloopgroup实现原理,解决jdk nio什么问题?自定义解码器解决 粘包问题、拆包问题,怎么解决包数据超过应用缓存问题, 使用直接字节缓冲区DirectByteBuffer
13、
spring 统计创建了多少bean,实现BeanFactoryPostProcessor,统计bean定义列表;
spring 中两中种bean,**普通的bean 和 特殊的bean,特殊的bean一般为实现特定接口用于管理bean工厂(factory -> bean)**,特殊的bean会先创建;
spring boot 和 spring mvc区别,约定大于配置,bean的生命周期,
spring-boot-starter 怎么写 -> spring.factoris文件
spring boot 启动流程。。。
14、spring cloud相关
断路器、网关、负载均衡策略、eurka注册中心、控制应用对redis的访问量(从网关方向考虑)
15、排序算法
选择排序、快速排序(效率高 O(NlogN))、堆排序,其他排序算法
16、树结构 二叉树 平衡二叉树 红黑树 ,红黑树底层实现原理
17、设计一个过滤黑名单用户的程序,当用黑名单用户访问服务时,提示不可访问;黑名单用户有到期时间,到期后自动解除,系统中黑名单人数有10万左右,并发数十万左右,设计黑名单用户增删改实现;思路:不要用redis ;kafka、网关、内存HashMap