贝壳面试总结

40多分钟

分库分表设计,场景
怎么设计索引。什么是索引覆盖、索引下推,
索引的数据结构、
数据库锁。行锁和表锁,具体场景
事务幻读

redis集群架构,sentinel cluster 的区别,cluster是怎么管理主节点,redis的数据结构,跳表,
分布式锁的实现,有什么问题,redlock原理,怎么延长锁时间

hashmap的数据结构
线程池相关的参数,原理

模式:写单例模式,用到哪些其他的设计模式,详细介绍spring利用到的设计模式,模板和策略模式的区别
Object类有哪些方法,hashcode有什么用,什么时候会重写equals方法,有什么用,==和equals区别
数据库存储引擎介绍,事务特性,MVCC,UNDOlog,索引,SQL优化
多线程:怎么创建线程,futureTask怎么获取返回值,是不是阻塞的,线程池的实现原理
redis的数据类型,怎么进行持久化,详细介绍
ConcurrentHashMap 介绍,加锁的过程,synchronized的原理,锁升级的过程
HashMap为什么是2倍扩容

针对最后一个问题疑问比较多,我回答的是计算器底层是0和1,二进制数据存储,我们用(2-1)&hash 在做位运算的时候低十六位和高十六位都能参与进来,最大程度避免hash冲突。我理解是只要是2的倍数就可以,但是一般来说扩容2倍就足够了,如果过多的话可能会导致很多分配的内存空间没有用。面试官说是因为扩容2倍前面的都不需要移动位置。(需要具体研究下)。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值