大家好,我是程序员小灰。最近有一位读者朋友在我的知识星球后台发帖子,讲述了他最近面试的情况。
今天给大家分享一个读者,他是一个二本的硕士生,机械专业,自学Java转码的。投递了西安比亚迪,最终成功上岸。感觉真的很励志!
今天,他把自己的面试经历,经历HR面以及技术面、综合面的面试问题,跟大家进行了细致分享。希望能对大家有所帮助。
总体面试难度:
比亚迪的面试难度相比于互联网行业算是中等偏下的,尤其在去年的23届秋招中,比亚迪被号称是“点击就送”的秋招之光,哈哈哈!
比亚迪的薪酬待遇:
比亚迪感觉也是偏向于“学历厂”,以下是2023届的秋招薪资汇总表,今年整体来说,与去年持平,我个人觉得很有性价比!C9的计算机科班硕士,月薪税后2W1,真的是很有不错了,而且没有互联网加班狠,挺值得推荐。
但是就这位同学说,今年24届的同学普遍反映,难度已经上升了不少,这位读者记录了自己面试比亚迪的大部分问题以及自己总结的心得。
投递部门:西安比亚迪 Java后端开发
面试者背景:
本科:广东某双非本
硕士:杭州电子科技大学硕士
专业:机械工程专业
学术成果:有一篇中文核心论文,蓝桥杯三等奖,数学建模校赛等奖项,导师实验室项目,无实习。
**面试轮数:**一轮HR面+一轮技术面
HR面核心问题汇总:
1. HR:同学你好,你为什么想投递比亚迪,而且将base选择在西安?
我:西安的生活节奏不快,去西安旅游过,感觉西安整体生活氛围不错,房价比较适中。想努力在西安直接定居,同时也是对比亚迪公司的大名如雷贯耳,慕名而来!
2. HR:你的意向岗位什么? 有没有挂过科,英语过没过四六级?
我:我本科学的机械工程专业,硕士阶段转到了车辆工程,主要和导师的研究方向是无人车相关的软件开发,使用的主要编程语言就是Java。因此意向岗位投递的Java后端开发。
本科阶段和硕士阶段均没有挂过科;英语六级在大三的时候考过的,一次性通过,450分。
3. HR:在研究项目方案的时候,如果你和领导的意见出现了不一样,你会怎么处理?
我:我会选择首先和领导沟通,详细听一听领导对项目方案的看法以及选择此方案的原因,然后和领导进行技术谈论。同时再向其他同事请教,毕竟自己作为一个新人,多去了解学习是第一位。
4. HR: 你谈谈你在找工作中看重哪些因素?
我:我在工作中,一部分看中薪资,另一方面更看重工作的方向。我在硕士期间和导师做了很多Java的web开发项目,同时考虑生活成本,希望节奏不要太快,觉得西安不错。
5. 我反问:投递部门所负责的项目内容是什么?
HR: 你的部门主要负责大模型的相关部署应用开发,技术方向我不太了解,应该是使用在无人驾驶汽车平台上的智能对话助手。但是进来之后,部门会根据每个人的技术栈进行适当的调剂。
HR面经验小结:简历是找去年的师兄内推的,所以处理的比较快,今年比亚迪确实对简历筛选严格了不少,比亚迪是先进行HR面,再约技术面的面试。
HR面感觉比较侧重于你为什么要来比亚迪?希望看到你的忠诚态度。因为去年很多人鸽了比亚迪。
同时比亚迪还能感觉到有一点国企的味道,会看你和同事的相处以及性格特色。其他的同学还有被问过家庭情况,比如是不是独生子女之类....
面试结果:三天后,HR发微信消息,说约了技术视频面
技术面核心问题汇总:
1. 面试官:介绍一下你熟悉的Linux 终端操作命令?chmod 命令是什么意思?
我:ls:用于列出目录中的文件和子目录。
cd:用于更改当前工作目录。
rm:用于删除文件或目录。
cat:用于查看文件的内容。
其中chmod命令是用于更改文件或目录的权限,使用以下命令可以将文件file.txt的所有者给予读和写权限:
chmod u+rw file.txt
2. 面试官:怎么查看Linux系统主机的网络连接状态?并且判断网络连接是否正常?
我:使用ping命令,测试与另一个主机的网络连接。使用ping命令发送数据包并等待目标主机的响应。如果收到响应,那么连接通常是正常的。
查看网络连接状态可以使用netstat或ss命令来查看系统的网络连接状态。查看当前的连接以及监听端口,特别是关注状态为"ESTABLISHED"的连接,表示已经连接的网络端口。
3. 面试官:Redis支持哪些数据结构?
我:Redis支持多种数据结构,以下是一些Redis支持的主要五种数据结构:
字符串(String):Redis的最基本数据类型,可以存储任何类型的数据,如文本、二进制数据等。
哈希表(Hash):哈希表是一个关联数组,用于存储字段和与其相关联的值。在Redis中,可以对字段进行增加、删除和获取操作。
列表(List):List是列表集合的数据结构,存储多个元素,允许在集合执行快速插入和删除操作。
集合(Set):Set是一个无序的字符串集合,它支持添加、删除和查找成员元素。集合内元素是唯一的,不允许重复元素。
有序集合(Sorted Set):有序集合类似于集合,但每个成员都有一个分数,使其可以按分数排序。它用于构建排行榜等应用。
4. 面试官:计算器网络的七层OSI模型包括哪七层?HTTP 和 TCP 在七层模型哪一层?
我:七层OSI模型包括以下七层,自底向上分别为:
物理层 、数据链路层 、网络层 、传输层、会话层、表示层、应用层。
其中HTTP工作在应用层,而TCP工作在传输层,它们协同工作以实现Web通信。
5. 面试官:了解多线程吗?多线程为什么快?切换之后怎么恢复到当时的状态?
我:多线程是一种并发编程技术,允许一个程序同时执行多个线程子任务,每个线程都有自己的执行路径和状态。
多线程可以允许多个线程在同一时间片内并行执行,异步操作。
操作系统通过保存和恢复这些状态信息来实现线程的切换和恢复。当线程再次执行时,操作系统会加载之前保存的状态信息,确保线程能够继续执行,就好像没有发生过切换一样。
6. 面试官:介绍一下Java垃圾回收中CMS垃圾回收器的优缺点?
我:CMS是Java虚拟机中一种旧的垃圾回收器,用于执行老年代的垃圾回收。尽管CMS垃圾回收器在减小停顿时间方面表现出色,但也存在一些限制和缺点。
CMS执行清理操作时可能会产生内存碎片,从而限制了老年代的可用空间,可能导致内存不足错误。CMS的并发执行会增加一定的CPU开销,因为它必须与应用程序并发运行。
并且随着老年代中存活对象的增多,CMS的停顿时间可能会增加,甚至可能导致Full GC的发生。
7. 面试官:简单介绍Java I/O,其中NIO、BIO、AIO三种I/O模式的区别
BIO是阻塞I/O,NIO是非阻塞I/O,AIO是异步I/O。BIO每个连接对应一个线程,NIO多个连接共享少量线程,AIO允许应用程序异步地处理多个操作。
NIO和AIO通常比BIO更适用于高并发的网络应用,可以更有效地管理多个连接和I/O操作。
AIO是适合高吞吐量的应用程序,可以异步处理多个I/O操作,而不需要线程等待。但AIO在Java中的支持相对有限,不是所有操作系统都支持。
8. 面试官: Spring运用了哪些设计模式?问到了Bean的生命周期?
包括工厂模式、单例模式、依赖注入、模板方法模式、观察者模式、代理模式和策略模式等。这些设计模式有助于实现松耦合、可维护和可扩展的应用程序。
关于Bean的生命周期,Spring容器管理Bean的生命周期,包括实例化、属性设置、初始化、使用和销毁阶段。在初始化和销毁阶段,开发人员可以插入自定义逻辑,以确保Bean的正确配置和资源释放。
9. 算法题手撕代码考察:
LeetCode 21. 合并两个有序链表
10. 我反问:咱们部门主要的技术栈是什么?我进来之后的工作方向是什么?
面试官:你的部门主要负责大模型的相关部署应用,使用在智能汽车平台上的智能对话助手。
因为目前还是新成立的部们,所以可能需要同学进来后除了Java的技术内容外,再学习一下Python以及大模型相关的知识,不过不用担心,我们部门的压力不是很大,可以进来再学习也来得及。
面试结果:两天后,HR说面试同学,过段时间签订两方协议
整体面试总结:将今年的面经给去年23届毕业的同学们看了一下,23届的同学感叹,今年比亚迪确实不再是点击就送了,但是感觉难度以及筛选的难度还在可接受范围之内,比起来大厂的那种死扣字眼的八股文面试,还是很有性价比的。
其实也能感觉到比亚迪的面试难度也是在逐渐的上升,所以想要赶紧抓住最后风口上岸的同学,抓紧了,比亚迪的工资很有性价比!