当前位置: 首页 > 面试经验 >

得物Java实习二面

优质
小牛编辑
131浏览
2024-01-05

得物Java实习二面

相比于一面的八股,二面项目问的更多一点,也问的更深入。
1.介绍一下你的项目。
2.你这个项目主要的功能点。(我说用Redis比较多,比如互斥锁解决缓存击穿)
3.那你讲解一下怎么解决缓存击穿?击穿、穿透和雪崩的区别?
4.你觉得把击穿、穿透和雪崩区分开的依据是什么?我回答因为他们对应的解决方案不同。
5.那你能讲解一下他们的解决方案吗?我回答我解决缓存穿透是将无效key(数据库和缓存中都不存在)缓存在Redis中,value设为“”,下次访问查询缓存,若value为“”则直接返回,防止访问数据库。面试官又提问:假如黑客每次都用不同的id去攻击你的数据库呢?我回答可以通过前端设置查询规范,拦截一些非法请求,后端通过布隆过滤器来解决。解决缓存雪崩可以建立Redis集群。
6.那你能讲一下布隆过滤器的原理吗?
7.乐观锁解决库存超卖的问题,我是在数据库中优惠劵库存扣减的同时要求库存大于0,防止超卖。面试官提出:那么在高并发的情况下,我会很担心你建立在数据库的乐观锁能不能扛得住这么多请求。我说:确实可能扛不住(哈哈尬住)
8.讲解一下你的分布式锁保证一人抢一张优惠劵。
9.常见的垃圾回收器。我介绍了一下cms的回收过程,他问cms的痛点是什么?我只想到一是有内存碎片,二是g1能够实现可预测的停顿时间。然后他又问了cms还有浮动垃圾问题,你知道浮动垃圾吗?(我不知道)
10.垃圾碎片严重情况下,有什么兜底措施吗?(有大佬知道吗)
11.刚刚听到你说g1能够实现可预测的停顿时间,你能详细说一下嘛?(自己给自己挖坑,我不知道g1是怎么实现的)
12.刚刚听你讲了cms的并发标记,重新标记,重新标记解决了什么问题?为可能需要重新标记的对象归个类?(怎么归类,想不太出来)
13.where a = 1 and b > 1 and c = 1,哪些用到了索引,为什么?结合b+树结构解释一下怎么查找的。
14.反问。问了一下业务。
15.你出来实习的目标。
第二天竟然oc了。当时没想到二面能过,jvm被问惨了
 类似资料: