校招 未知部门 / 后端-Java / 多轮
[面试日期] 2026-03-04 [面试时长] 未知
[学校背景] 未知 | 未知 [学历背景] 未知
[发布人] 面试之星官方收录
<h2>考研落榜到华为OD:我的24届Java</h2>
<p><strong>背景</strong><br>
24届大学科班考研二战失败后,我果断放弃了继续考,转而瞄准华为OD Java开发岗。没有实习经历?没关系!我通过<strong>德科HR</strong>全程跟进(从机考到面试全流程指导),硬是用3个月刷透算法和八股,最终拿下Offer。今天,我大概说一下我是怎么从“考研失败者”还有点gap成华为OD开发的!</p>
<h3>🔥 机考:我的高分通关血泪史(亲测有效!)</h3>
<p>德科HR给我发了独家题库+真题,但<strong>我坚持先自己写再看答案</strong>——这招救了我命!机试时系统会查代码重复度,我差点栽在重复率上,后来才懂德科HR的提醒有多重要。</p>
<p><strong>双机位实操细节</strong>:</p>
<ul>
<li>考前1天,我反复调试摄像头(别学我第一次用手机支架,差点被判定违规);</li>
<li>网络必须用有线连接(我用手机热点被警告过,说“系统会记录”);</li>
<li>机考前德科HR发了行为规范,我逐条看了下,比如“不能接电话、不能切屏”——这些细节真的影响部门分配!</li>
</ul>
<p><strong>我的机考题目(真实题)</strong>:</p>
<blockquote>
<p><strong>T1:石头游戏(100分)</strong><br>
我的思路:用动态规划,dp[i][j]表示[i,j]区间先手能拿的最大值。<br>
例:输入[5,3,7,10],我写代码算出15(小明取5+10=15,小红取3+7=10)。<br>
<em>(机考时我卡了5分钟,但提前刷过类似题,稳住了!)</em></p>
<p><strong>T2:矩形分组(100分)</strong><br>
我的解法:先算每个矩形中心点y坐标,再按中心y差≤高度一半分组。<br>
例:输入[[0,0,2,1], [1,0,3,1], [0,2,2,3]],输出1,2,3(第一行两个矩形,第二行一个)。<br>
<em>(当时紧张得手抖)</em></p>
<p><strong>T3:CSV文件解析(200分)</strong><br>
我的处理逻辑:</p>
<ol>
<li>用正则识别字符串(如<code>"name,age"</code>);</li>
<li>忽略<code>#</code>开头的注释行;</li>
<li>跨行合并(行尾有逗号就继续读下一行)。<br>
<em>(调试了好长时间)</em></li>
</ol>
</blockquote>
<h3>📚 综测(性格测试)</h3>
<p>HR强调:一致性(前后保持一致)忧虑值和乐观值,比较简单那直接推进面试!</p>
<h3>💼 面试全流程:我的实战记录(手撕+八股)</h3>
<h4>✅ HR资格面(我稳住了!)</h4>
<ol>
<li><strong>自我介绍</strong>:<br>
<em>“考研失败后,gap一段时间,然后就用3个月系统学习Java:刷了200道LeetCode,复盘了考研错题,还做了个订单系统项目。现在想用技术落地,而不是纸上谈兵。”</em></li>
<li><strong>项目简述</strong>:<br>
<em>“用SpringBoot+Redis做了个秒杀系统,Redis用Hash存用户信息,ZSet做排行榜。QPS从50提升到300+。”</em></li>
<li><strong>Gap期</strong>:<br>
<em>“每天刷10道算法题,研究JDK源码(比如HashMap的扩容机制),还写了份《错题本》。”</em></li>
</ol>
<h4>✅ 技术一面(手撕+八股,我过了!)</h4>
<ul>
<li><strong>手撕代码</strong>:<br>
面试官让我写<strong>二叉树层次遍历</strong>,我用BFS实现,测试用例全过。<br>
<em>(面试官说:“思路清晰,但可以优化空间复杂度。”)</em></li>
<li><strong>八股重点</strong>:
<blockquote>
<ol>
<li><strong>Synchronized vs Lock</strong>:我答“Synchronized是JVM实现,Lock可中断,我项目里用ReentrantLock解决死锁。”</li>
<li><strong>线程池调优</strong>:我答“核心线程数=CPU核数*2,比如8核机器设16,避免线程创建开销。”</li>
<li><strong>SQL优化</strong>:我答“避免SELECT *,用覆盖索引,比如WHERE age=25 AND name=‘张三’。”</li>
<li><strong>反射原理</strong>:我答“Class.forName()会加载类,触发静态代码块,但性能比直接new差。”</li>
</ol>
</blockquote>
</li>
</ul>
<h4>✅ 技术二面(深度拷打,我扛住了!)</h4>
<ul>
<li><strong>手撕代码</strong>:<br>
面试官问LRU缓存,我手写双向链表+HashMap,边写边解释:<br>
<em>“Node类存key、value、prev、next;HashMap存节点引用;get时移到链表头,put超限时移尾部。”</em><br>
<em>(测试用例通过后,面试官点头:“逻辑很清晰。”)</em></li>
<li><strong>八股硬核题</strong>:
<blockquote>
<ol>
<li><strong>HashMap为什么用红黑树</strong>:我答“链表长度>8时转红黑树,从O(n)降到O(log n)。”</li>
<li><strong>ConcurrentHashMap</strong>:我答“JDK8用CAS+synchronized+红黑树,避免synchronized锁整个桶。”</li>
</ol>
</blockquote>
</li>
</ul>
<h4>✅ 技术三面(前面两面定级不一致加面了)</h4>
<ul>
<li><strong>手撕代码</strong>:<br>
面试官让我写<strong>字符串反转</strong>(O(1)空间),我用双指针:<br>
*“char[] arr = s.toCharArray(); for(int i=0,j=arr.length-1;i 1. <strong>Redis缓存雪崩</strong>:我答“用多级缓存(Redis+Caffeine),热点Key随机过期时间。”
<blockquote>
<p>2. <strong>MySQL事务隔离</strong>:我答“读未提交会脏读,可串行化最安全但性能差,我项目用读已提交。”</p>
</blockquote>
</li>
</ul>
<h4>✅ 综合主管面</h4>
<p>主管问:“为什么用ZSet而不是SortedSet?”<br>
我答:“ZSet支持分数排序,比如排行榜按积分排序,SortedSet只能排元素,不支持分数。”<br>
<em>(主管笑了:“答得准!你平时怎么学Java?”我答:“每天看1篇JDK源码,比如今天刚研究了HashMap的hash()方法。”)</em></p>
<h3>💡 终极避坑指南(我的血泪教训)</h3>
<ol>
<li><strong>机考分数是命根子</strong>:德科HR说“分低了基本没部门要”,我刷题到比较熟练才安心。</li>
<li><strong>手撕代码别死磕</strong>:技术一面我卡在二叉树遍历,但我说了思路:“先用BFS遍历,再按层存结果”,面试官说“思路对就行”。</li>
<li><strong>简历项目必吃透</strong>:我写“Redis缓存优化”,结果被问“缓存失效时间怎么定?”,我答“业务峰值的2倍,比如10秒”,面试官点头。</li>
</ol>
<h3>🌟 最后一句话(给我的24届战友):</h3>
<blockquote>
<p><strong>“考研失败不是终点,是让我看清了:技术才是硬通货。HR全程陪跑,从机考题库到面试提醒,甚至等我面试结束发结果——现在,轮到你了!</strong><br>
<strong>别怕没经验,华为OD要的是‘踏实啃技术’的人。我做到了,你也能!”</strong></p>
</blockquote><a>#华为#</a><a>#华为OD#</a><a>#考研失败#</a><a>#gap#</a><a>#24届#</a>
AI 推荐面试题
