从湖南二本到成功秋招:23届Java毕业生的求职经历与心得分享
个人情况
我是一名来自湖南的二本院校的计算机专业毕业生,2023年应届生。自大三开始系统学习Java编程知识。去年在寻找实习的过程中,我经历了无人回复的求职苦境,以及秋招期间的激烈竞争。在求职中,我观察到许多高学历的同学轻松获得面试机会,而像我这样二本背景的学生则面临更多挑战。在春招期间,我还看到同班10位学习Java的同学中,只有我依然在坚持这个方向。
学习情况
自我学习能力在求职过程中至关重要。由于我没有参加过培训班,最初找工作时面临不少困难,尤其是简历屡屡遭到忽视。为了改善这种状况,我开始多做项目,花费更多时间提升自己的技能与经历,逐渐找回了信心。我相信,认真对待每一件事是大学生活中最重要的事情之一。虽然大家都知道期末考试的水分,但在考试前几个月认真复习专业课程,最终获得高分是极有意义的。我在校期间多次获得班级和年级的第一,并获得2023届优秀毕业生和优秀论文、设计的荣誉。
在大三那年,我在LeetCode上刷题超过400道。我认为,企业在考量应届生时会关注他们的校园经历。尽管我的字写得不太好,但我始终坚持用笔记录,从学习Java开始到面试过程中,我用三本笔记本记录了相关知识点。
面试情况
在求职过程中,我面试了网易,虽然未能通过排序环节。之后又面试了兴盛优选、申通快递、4399游戏、众安科技和多益网络等多家公司。在整个秋招中,我收到了不少offer,但这让我感受到学历的限制,许多大公司即使通过了笔试,仍然很少邀请我面试,而获得的offer大部分来自中小型企业。最终,我选择了一家还不错的独角兽公司签订了三方协议。后续因实习和毕业设计的忙碌,我未参加春招,听说同班学习Java的同学们均已转向其他领域。
由于参加的面试数量较多,这里我挑选了一个公司的面试经验进行分享(兴盛优选)。
一面
面试官非常和蔼,面试时间超过一个小时,提出的问题如下:
- 自我介绍;
- 平时如何学习Java技术?
- 团队项目中如何与团队合作?
- 简历中项目的核心功能是什么?
- 请介绍SpringCloud在项目中的应用。
- 前端请求在项目中的处理链路是什么?
- GateWay与Nginx的相似与不同之处?
- GateWay处理后的请求在微服务中的进一步处理是什么?
- GateWay是否需要注册到Nacos?如何进行注册?
- JVM、JDK、JRE三者之间的关系?
- 方法重载与方法重写的区别?
- 接口与抽象类的区别?
- 堆、栈、队列、集合之间的区别是什么?
- 对上述知识的源码实现了解吗?
- 请讲解HashMap的源码。
- 线程与进程的区别和联系。
- 是否使用过多线程?项目中为何需要多线程?
- 如何解决多线程的安全性问题?
- synchronized的实现原理是什么?
- 比较悲观锁与乐观锁。
- 讲解JVM内存模型。
- JVM每个区块的功能。
- 讲解JVM的垃圾回收机制。
- JVM垃圾回收器有哪些?
- 讲解Serial和CMS、G1回收器。
- 请解释Spring的IOC与AOP。
- SpringBoot的优点是什么?
- 是否进行过MySQL调优?
- 数据库的分库分表如何实现?
- 索引在数据库中的作用是什么?
- 索引的数据结构是什么?B+树是什么?
- MySQL如何保证事务的一致性?
- Redis与MySQL的区别是什么?
- Redis的持久化机制是如何实现的?
- Redis如何保证缓存的一致性?
- RabbitMq与延迟双删适用的场景是什么?
- 对网络方面的了解如何?请讲解TCP/IP协议的网络分层。
- 在项目中遇到的问题如何解决?
- 有没有考研的打算?为何没有考研的打算?
- 反问环节。
二面
- 自我介绍;
- GC底层算法、JVM内存模型、常见垃圾回收器、双亲委派的类加载流程;
- 分别介绍GC底层算法的优缺点及应用场景;
- 什么是复制算法?原理是什么?应用于哪个区域?为何多用于该区域?
- 标记整理法的缺点是什么?
- 讲解JVM的内存模型;
- 元空间的作用是什么?
- 新生区与老年区的分布及其区别和使用算法;
- 新生区、老年区与永久代的定义;
- 介绍双亲委派机制;
- 双亲委派机制如何避免类的重复加载?
- 如何自定义与Java核心方法同名同参数的函数?
- 双亲委派机制的双亲是谁?
- 自定义类加载的过程是什么?
- 讲解Redis的持久化机制;
- Redis持久化机制的应用场景有哪些?
- RDB方式是否会造成数据缺失?
- 什么是缓存雪崩、缓存穿透、缓存击穿?
- 缓存一致性策略有哪些?
- 在缓存一致性过程中,如果MQ宕机该如何处理?
- 请介绍你做的项目;
- 你认为项目中的难点是什么?
- 你对未来的规划?
- 反问环节。
HR面略。