带你走进网易Java开发求职之旅:从零基础到成功的求职经历与面试指南
背景
这位求职者拥有2年的硕士学位,来自一个较为冷门的本科专业,完全是通过死记硬背来转行进入计算机行业,基础相对薄弱。
历程
在2022年10月,他开始了自学Java技术栈,跟随B站的黑马和尚硅谷视频学习并实践编程。经过不懈努力,他在除夕夜前后完成了Spring Cloud的学习。此后,他开始研究各大公司的面试经验,并在牛客网上看到推荐的Guide哥的JavaGuide,随后加入了知识星球并进行了自我介绍。接下来,他开始背诵面试常见问题,从2023年1月到3月间进行断断续续的学习,同时参与了Guide哥的RPC项目和黑马点评项目,之后便开始大规模投递简历,最终取得了令人满意的结果。
经验
- 八股文的学习必须结合项目实践,项目内的各项知识点都应进行头脑风暴。面试大佬的答案都是在项目和比赛中锤炼出来的,光靠背诵是无法掌握的。
- 尽快开始投递简历,不要犹豫,先从小公司的实习岗位入手,逐渐晋升到大厂的实习和秋招。当HR询问时,要展现出自己具备的各项能力。一天之内面试5家公司的经历,让他在忙碌中收获了多个offer。
- 一定要对面试进行录音或录屏!面试后进行复盘,分析自己的表达和逻辑,查漏补缺。身边很多人面试后不复盘,而你如果能够复盘,就已经超越了大多数人。
- 在刷题方面,通过大量面试,他发现力扣上的题目大部分都已做过,陌生的题目几乎没有。力扣的Hot 100题目应牢记于心。
- 面试时的心态很重要,需表现出与公司价值观相符的态度。例如,面试阿里时要自信(不要过度道歉),面试华为时则要展现出能抗压的形象。如何调整心态,唯有多加练习与面试。
- 若有机试环节,务必要取得优异的成绩,用任何方法都可以(你懂的)。
总结一下:
- 一份优质的简历:实习和项目经历需经得起考验,条理清晰且逻辑合理。
- 随时保持思考,展现出自己的见解(ps:我有个奇怪的想法,面试官得让觉得你有想法)。
- 面试时要保持清晰的思路,避免全是死记硬背的内容,要表现出兴趣、心态和自信。
- 学会输出,进行多次练习。
面经
以下是面试经历:(几乎所有公司我都面试过,部分录音懒得复盘,如果需要可以告诉我,我会再总结)
网易 Java 后端开发(已接到offer,最终选择了此岗位)
一面:(乱序,回忆版)
- 自我介绍
- 编写一个简单的登录业务(MVC模型)
- 实习及项目相关经历(包括一段中型公司的实习)
- Spring常见面试问题(如AOP、IOC及常见注解等)
- 处理数据库多版本接入的方式
- BASE特性及其实现方式
- 手撕题:通过前序和中序遍历构造二叉树
- Netty的核心组件
- Netty的NIO与BIO
- Redis的单线程与多线程
- 除了MySQL和Redis外,还使用过哪些数据源?你了解Hive吗?
- 与面试官讨论俄乌冲突及国际形势……
二面:(乱序)
- 自我介绍
- 实习及项目相关经历
- RPC具备多少Dubbo的功能?如何暴露服务?如果服务挂了怎么办?
- 数据库多表查询编写SQL
- 如何设计数据库表
- 有调试过数据库参数吗?
- 网络与操作系统的常规知识
- 手撕题:双向链表的反转
- Git合并分支的相关细节问题(不会,没合并过)
- ZK、DB、Redis锁的选型
- 提出反问
美团 Java 后端开发(已接到offer)
一面:(乱序,回忆版)
- 自我介绍
- 手撕题:验证二叉搜索树
- 实习及项目相关经历
- HTTP协议的组成、报文格式、头与body的分割、Cookie的携带方式
- 计算机网络分层模型
- TCP的可靠性保障机制
- HTTPS校验的哈希算法
- HTTP 2.0与HTTP 1的区别
- 什么是队头阻塞?2.0为什么不使用UDP?
- 总体问了很多计算机网络的基础知识
- 面试中询问自己的亮点可以分享
- 提出反问
二面:(乱序,回忆版)
- 自我介绍
- 手撕题:反转链表
- 实习及项目相关经历
- 用户态与内核态
- RPC过程与这两种状态的关系
- 自定义的序列化方式偏向于Json还是Protobuf?这两个序列化有何区别?与自定义序列化的性能差异如何解决?如何处理分包与粘包?如何进行注册与注销?讲述SPI实现及依赖倒置?动态桩的定义?客户端是否能指定调用IP?
- 简单八股问题
- 闲聊及实习时长
- 提出反问
B站 安卓开发 一面未通过
- 自我介绍
- 手撕题:LRU、二叉树层序遍历、单例模式
- 实习及项目相关经历
- HashMap、ConcurrentHashMap的底层实现
- 讲解红黑树的原理
- static与final关键字结合JVM的理解
- 讲解JMM
- 垃圾回收及死亡对象的判断方法,具体讲解可达性分析
- 线程与进程、进程的通信方式、线程状态、上下文切换、死锁及其解决方案、wait与sleep、多线程相关知识及安全问题、两种锁的区别和底层实现
- 内存管理
- Java设计模式
- Java代理
- IO模型
- 提出反问
面试体验非常愉快,面试官全程充满笑容,自我介绍结束后还夸赞我的表现,尽管我对安卓并没有什么了解。
Wind Java 后端开发 一面未通过(这是我最早的面试,当时复习不够)
- 自我介绍
- 线程池相关(最大线程数与核心线程数相等的问题)
- 解决循环依赖注入的方案
- Spring Boot常用注解
- @Resource与@Autowired的区别
- ${字符串替换符}与#{占位符预编译处理}的区别
- Linux常用命令
- Redis数据结构SDS的优化
- Redis失效如何验证登录
- Redis集群相关问题
- Redis的ZSET底层实现
- 对消息队列及中间件的了解
- 线程内存泄漏的问题
- MySQL主从数据库设计
- 提出反问
MetaApp Java 后端开发 一面未通过(也是比较早的面试)
- 自我介绍
- ThreadLocal底层实现
- AOP与IOC原理及其应用和相关注解
- ArrayList与LinkedList的区别
- MySQL索引的使用
- MySQL的并发问题
- MySQL事务的理解
- MySQL刷盘原理
- Redis的持久化机制
- Redis缓存问题
- MySQL三大日志
- 线程池的理解与创建方法
- 手撕算法:打印二叉树指定路径、青蛙跳台阶问题
- 程序题:判断两个对象是否相等
- 提出反问
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果