面试问题整理

技术类:
1、redis如何水平扩展(一致性哈希)
2、parallelStream使用中的问题(线程安全,聚合与否,共享线程池问题)
3、dubbo的实现原理,调用过程,dubbo异步调用实现
4、future原理
5、jvm加载过程(校验,加载,空间分配,静态变量,静态方法等)
6、双亲委派机制
7、线程池常用核心参数,以及设置原因(IO密集型线程,CPU密集型线程)
8、redis为什么单线程,如何保证效率的(单线程只是用来连接)
9、redis的一些命令
10、redis的数据类型
11、jstack,jmap等线上排查问题工具,用法
12、Linux常用命令 (z)grep ,cat ,sed ,awk ,wc(统计),去重等
13、如何查看异常挂掉的进程日志
14、数据库事务 隔离级别,默认隔离级别,实现原理(mvvp)
15、数据库索引 主键索引,单列索引,组合索引,唯一索引(聚簇索引),覆盖索引;全文索引(非聚簇索引);命中逻辑,结构(B+树,适合区间查询,只在叶子节点存有数据,单节点能存更多数据,减少IO)
16、锁:乐观锁,悲观锁,各种锁,以及不同应用(如JAVA,MySQL)中的实现喝可用库
17、数组下标,为什么从0开始?数组的地址真的是连续的嘛?数组在栈还是堆上?(栈,jvm内存模型)多个进程共享的时候,如何保证数组在内存中的地址是连续的?
18、hashmap的推演及变形问题
19、spring 事务(@Transanctional)的实现原理
20、

方案类:
1、分布式锁
2、幂等(最终一致性)
3、128位数字加减问题(数据结构如何设计,用什么基础类型,位数是否足够,怎么处理符号位)
4、计算10000或者更大数字的阶乘问题(算法,溢出,如何判断溢出)

技能:
1、load飙高的常见排查思路