当前位置: 首页>后端>正文

货拉拉java面试题

1 java服务CPU使用率达到90%,怎么快速排查问题
死循环或死锁会导致CPU飙高
死循环:HashMap在并发使用时,头插法在扩容期间会产生循环链表,然后执行get() 会触发死循环,造成 CPU 100% 的惨案。(1.8版本后改为了尾插法)


货拉拉java面试题,第1张

具体排查步骤:


货拉拉java面试题,第2张

2 并发场景除了加锁还有什么解决方式
  • 加锁:乐观锁,悲观锁,分布式锁
  • 使用消息队列异步串行化处理,达到削峰效果

3 kafka 的重试机制,怎么保证消息不丢失,如何处理消息积压

4 线程的创建方式有几种,CompletableFuture ,Callable,ArrayBlockingQueue为什么要做成阻塞的,CallerRunsPolicy的缺点,怎么结束一个线程,核心线程怎么保证一直运行?

5 redis hash的底层实现

6 spring 使用2层缓存能解决循环依赖吗?

7 怎么保证订单不重复提交,怎么保证幂等,幂等怎么实现的

6 建议:多去探索原因和原理


https://www.xamrdz.com/backend/3we1940094.html

相关文章: