天天看点

JAVA程序员面试系列(二)

注意,这里所有的面经都是已第一人称书写,但并不表述全部都是我个人的经历,有来自我个人的,也有来自其他小伙伴和我之间的交流)

没看过系列前面几篇的小伙伴,可以直接传送去看一下。一是网易的面经。

涂鸦

三面技术 电话面试

  • 分布式锁,分布式事务解决方案。
  • MQ,MQ的推拉模式,rocketMQ的内部实现。

电话面试。很奇葩的公司,自我介绍都没有,上来直接问技术。分布式事务,分布式锁,以及在项目中如何实现的,然后扣细节,问了一下实现的具体细节。然后问了一下了解的MQ的推拉模式。回答的不是很好,项目中的实现细节没有把握好。MQ的推拉模式准备的不是很好,实现细节没有回答好。总体感觉项目上的准备还有欠缺,MQ的细节还要补补。

没有后续,一面挂。

大搜车

两面技术 电话+现场

一面:电话

  • 分布式锁,分布式事务
  • 定时任务如何实现,自己设计下
  • JVM基础内容,GC算法以及相关的GC流程。JVM调优。
  • 线程池的创建,ThreadPoolExecutor7个参数,自定义拒绝策略,阻塞队列大小。
  • redis哨兵机制
  • RocketMQ的延迟消息特征。

先是简单的自我介绍,问了分布式事务相关问题,在项目中是如何实现的,由于其中涉及到定时job,也说了一下关于实现定时任务的方法。然后问了一下JVM相关的问题,JVM调优,常用的GC算法,PS,PO,CMS算法等。又问了一下JUC相关的,创建线程池的方法,ThreadPoolExecutor的七个参数,具体的自定义线程创建工厂,拒绝策略,阻塞队列的大小。还问了redis的哨兵机制,rocketMQ的延迟消息特性。

二面: 现场

  • 项目架构图,项目的技术点,微服务划分,为什么这么设计
  • rocketMQ的消息推拉模式实现原理
  • redis的主从同步机制及其流程和原理
  • 算法:英文字符串排序排序,不开辟额外空间

二面相对更偏考察你的思想一点,主要还是集中围绕你的项目展开,画一下项目的架构图,服务为什么这么划分,有没有什么问题?如何解决,优化。然后就是一些基本的中间件相关的概念,内部实现,底层源码说一点。最后就是做一道算法题。

如果大家觉得我写的还可以,对你有帮助,还希望点个赞。这样我也有更大的动力去回顾自己这一路的磨炼,整理出更高质量的面经,给你们更好的参考资料。