终于在25年迎来了人生的第一次Java面试
面试背景
2.7号我迎来了第一次正式的面试,面试是在线上进行的,薪资范围为5-7K,面试过程大概20分钟。
开始面试
首先进行一下自我介绍,我的自我介绍非常简单,就是简单说一下自己的教育背景、项目经历工作年限(包装的,非必要不建议模仿)、业余时间看看博客、学学技术。
项目提问环节
说一下你最熟悉的项目,我说的是包装的项目,这个项目写过一些核心代码,但是相比于导航的项目还是有点生疏的,可能觉得这个项目是包装的比较真实性,我就说了这个😂。然后万一就出现了,由于紧张,说话开始打颤,说的那是驴头不对马尾。我自己都快给我整笑了。说完之后,提问的第一个八股相关的就是你的项目中定时任务是怎么实现的?,然后啊吧啊吧说了一两句。感觉没什么东西了,也没再提问项目的问题了,开始对八股下手了。
八股提问环节
问题一、我看你做过微服务的项目,说一下sentinel的作用都有哪些?
我先想了一下,开始说,说的也不是很全,但是有那个意思。附上详细的解答: sentinel是阿里巴巴推出的一款流量控制很系统保护工具,它可以实现流量控制、服务熔断降级、负载保护功能。
问题二、了解Spring中的IOC吗?
这个一下子就想起来,但是说的时候我给说串了,直接说成可DI依赖注入了,后来又圆了一下,这个回答也不是很好。贴上详细的解答:

问题三、说一下你对RocketMQ的那一部分最熟悉?
这个问题是全场最佳,RocketMQ事务那个我最熟悉了,一张图搞定:
问题四、你了解哪几种垃圾回收机制?
这个之前经常看,一到关键时候果不其然,还是忘了一个,详细的解答:
标记-清除算法 标记-清除(Mark-and-Sweep)算法分为“标记(Mark)”和“清除(Sweep)”阶段:首先标记出所有不需要回收的对象,在标记完成后统一回收掉所有没有被标记的对象。 复制算法 为了解决标记-清除算法的效率和内存碎片问题,复制(Copying)收集算法出现了。它可以将内存分为大小相同的两块,每次使用其中的一块。当这一块的内存使用完后,就将还存活的对象复制到另一块去,然后再把使用的空间一次清理掉。这样就使每次的内存回收都是对内存区间的一半进行回收。
标记-整理算法 标记-整理(Mark-and-Compact)算法是根据老年代的特点提出的一种标记算法,标记过程仍然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象回收,而是让所有存活的对象向一端移动,然后直接清理掉端边界以外的内存。 分代收集算法 当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将 Java 堆分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。 比如在新生代中,每次收集都会有大量对象死去,所以可以选择“复制”算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集。而老年代的对象存活几率是比较高的,而且没有额外的空间对它进行分配担保,所以我们必须选择“标记-清除”或“标记-整理”算法进行垃圾收集。
总结一下
第一次面试太太太紧张啦,紧张到这人一看就是没什么工作经验的人,还是多面试多练习才行,加油加油! 路漫漫其修远兮。
