java基础:
hashmap,currenthashmap底层源码熟记
跳表
线程池
mysql:
结构,存储引擎,mvcc, 索引( b+树,b树,hash索引)
https://www.jianshu.com/p/288f8809b151
缓存:
内部缓存:hashmap,currenthashmap源码;
外部缓存:redis数据结构,扩容方案,缓存淘汰策略;选型,集群方案关注哪些点,自己设计一个redis怎么设计;
spring:
生命周期,动态代理,aop,循环引用问题,spring cloud,spring mvc加载过程
一致性:
cap和base
mq
查询模式与补偿模式
tcc
算法:
链表增删改查,反转,二分查找,堆排快排
系统设计:
订单状态流转,账户系统,提现系统
系统难点,一致性保证,怎么保证不打错钱,不扣错款
设计模式:
工厂方法,prototype,模版方法,策略,适配器,观察者,装饰者
中间件:
rabbitmq kafka原理,区别
elasticsearch
dubbo,thrift tractid透传
nosql:
平台层:
docker+k8s快速扩容
源码:
dubbo,spring
线上问题:
性能问题、一致性问题、死锁问题,jvm调优,sql调优
系统设计:
https://soulmachine.gitbooks.io/system-design/content/cn/api-rate-limiting.html
分布式经验、高并发场景的开发经验
订单系统
1.高并发情况下订单系统请求库存系统怎么保证一致性
2.大流量伪ip查询大量不存在的key,怎么防范请求db,不写日志,巧妙防范
3.订单超时30分钟自动取消,java怎么实现
4.java数据结构设计缓存过期淘汰策略
5.大流量查询redis的一个key,key过期了,怎么防止一起访问db(缓存穿透,击穿,选型)
6.分布式链路追踪系统设计方案
7.http服务怎么进行链路追踪
8.用户系统和商家系统账单查询怎么进行分库分表
9.直播平台刷礼物怎么设计
10.热点账户方案设计
11.SQL索引设计
12.既有http应用是怎么透传traceid,监控到每个方法的请求时长的?
方案选型
缓存方案选型,redis集群优缺点选型
数据库中间件优缺点选型
mq优缺点,选型(rabbitmq,kafka,rocketmq,activemq)
实战:
使用的XXX你了解原理吗?有没有竞品?你用的这个和竞品之间对比有什么优势?各自的优缺点是什么?
(任何的技术选型没有最完美的,只有最合适的的。面试官之所以问这些问题,是希望考察一个人是不是有思辨思维,是不是可以主导一些技术选型,而不是被动的接受)
资金的安全性
基础:
1.hashcode()重写后equals()需不需要充血
2.synchronized实现原理,volatile原理,double check为什么要volatile
3.hashmap实现原理,扩容原理
4.aop相关问题
5.jvm一些算法
6.https实现原理
7.mysql事务隔离级别,幻读怎么产生的,分布式事务
8.mysql索引
9.redis哨兵,集群方案
系统设计
10.sql调优方案
11.项目中难点,最终一致性怎么保证的,高可用怎么保证的,缓存怎么设计的
12.tomcat cpu高怎么处理
13.防止sql注入