面试-总结

spring我直接说不会了

数据库:
堆和栈的区别
内存泄露、内存溢出、缓冲区溢出有什么区别
进程间通信方式,他们之间的优缺点
进程状态的变化
事务:四个特性。
mvcc
索引
数据库故障恢复或者事务回滚怎么保证数据一致性
怎么设计索引
怎么保证通过undo redo日志恢复,数据库恢复时是怎么避免扫描全部日志的
最左前缀是什么,试着从原理方面解释为啥会有最左前缀
死锁

Java:
进程和线程区别、创建进程需要向操作系统申请哪些资源、创建线程呢
排查数据库查询问题,explain的哪些字段用得多
concurrentHashMap为什么能支持并发,怎么做的
ReetrantLock内部实现、AQS怎么保证并发下某个线程不会饥饿
线程池的原理

jvm:

CMS 和 G1

G1是如何知道哪块内存的回收价值是最大的

G1的底层原理

redis:
redis底层数据结构
hash的实现
redis持久化原理
redis的网络通信
高可用实现
哨兵实现

算法:
一亿用户,如何查看当前用户的积分排位
各种高并发
秒杀——对限流和缓存,防重这三点不是很满意
最大数
回文数
旋转数组的查找
求100000的阶乘
两块广告牌,五个广告商,在一段时间内五个广告商的广告出现次数为1:2:3:4:5,两个广告牌不能同时播同一个广告
模拟现实生活中的洗牌(不是直接随机调整数组)
滑动窗口的最小值(快手)
atoi 字符串转数字(遇到两次)
LRU手写
m个医生、n个病人。n个病人的看病时间一直,设计一个算法,尽量使医生的平均看病时间接近。(头条)
topk问题
快排、堆排
大数据排序

原文地址:https://www.cnblogs.com/jjfan0327/p/13552916.html