千回百折:百度Java研发offer斩获记和经验分享
- 起因
- 面试过程
- 等待offer的过程中悟道
- Java面试常考知识点个人总结
过程
百度——作为国内互联网的巨头之一,最近的一些风波对其褒贬不一,但是类似事件不是第一次发生,也绝对不是最后一次,对于真的找工作的人没有丝毫影响,反而更激发了加入百度的决心,毫不夸张的说,bant(n=网易)……可谓是诸多相关专业应届学生的向往之地,本人一直有bat情节,其中偏偏独爱作为世界互联网公司排名第四,国内头三把交椅的大百度……
而自从去年百度全面冻结hc,停止社招之后,今年陆续又缩小了实习生的招聘规模,每个部门的hc都非常紧张,相应的,也直接造成了实习生和校招招聘的难度被放大!因为hc实在是太少了。
今年年初,我思前想后,还是决定离开当前的实习公司——h3c,不是它不好,其实还是我个人的原因,因为我还是不太能融入通信设备这种传统行业,而促使我下决定的直接原因就是某日当我和一师兄沟通,他说,“师弟啊,你真的已经快要脱离互联网行业了!想在互联网闯荡,赶紧抓紧跳出来……”。
好了,闲言少叙,既然是斩获记,那么必然得说说我的面试过程和准备过程。这样才对得起标题啊。
其实自己真的水,只不过正好符合了面试官的胃口,加上有那么一点儿运气。这次面百度是现场的,一共三面,因为投的是java研发岗位,故第一面安排的是一个懂java的高工,先是自我介绍(ps:三面我介绍了三次……也是醉了),问我能研二还能实习多久……之后先让手写了个二分查找,然后顺着简历项目问,主要就是java多线程这块,内存模型,生产者和消费者模式,如何保证项目的线程安全的,怎么做的……hashmap和hashtable的比较,concurrentHashmap的线程安全的实现原理,手写一个单例模式,让写了两种实现方式,枚举和非枚举,并问了如何保证线程安全,反射攻击,序列化等。接着又手写一个链表的反转算法(稍微修改了下才对的),看我简历上有我博客,还有说熟悉JVM,就让我画了JVM的结构,堆的结构(我画的JAVA7的),最后还问了JVM垃圾回收算法的种类都有啥……接着问有没有jvm调优过?我简单说了下调优,因为调优经验不是很丰富,最后一面结束,让我问他问题,主要问的主要做啥,实习生培养制度,实习时间,这里强调下,今年百度研发很难进,名额很少很少,并且要求一定的实习时间,不然不要的……越长越好。面了半个多小时,紧接着马上就是二面经理面,ps:和我一起的还有一个来面试的,貌似是北大的,一面刷掉了。
二面大概1个小时,技术上没再细问,主要问的项目经验,还有目前实习的内容,工作情况,总之就是看你怎么自圆其说喽,没啥难度,只要是真正实习,好好做项目,回答这些应该都没问题。最后还是例行的让我问问题,我当时问了待遇,实习生培养机制,主要做啥,老生常谈。到了这一刻,我以为就算结束了,没想到,经理让我等等,他去叫他老板来……三面开始了!
三面半个多小时,竟然还是问技术,让手写了个快速排序,大小顶堆,m个元素数组找前n大的元素(不排序方法,最优),1-n自然数的数组,乱序排序(最优),后两个题回答的不是很让面试官满意,虽然也说了思路。接着就是还问了TCP三次握手,为啥三次?还有流量控制的机制,说下滑动窗口和选择重传……最后因为是java岗位,很自然的问了我期待的问题:JVM垃圾回收的过程,四类java引用作用和使用场景。技术面试到这里就算结束了,最后问实习多久了,代码量多少了,跳槽理由,对未来的规划,家是哪儿的,你和你同学比有啥优势?你认为华三,华为这样的通信企业和互联网公司有什么区别?比较下两个公司的主营业务,你认为有什么不同……最后还是例行问,你有啥想问的?我还是问了下实习待遇,培养机制,但是当时竟然忘了问是不是通过了,估计问了也白搭……
结束后,大概用了3个多小时,老板很和蔼,还怕我找不到路,亲自送我到电梯离开。整个面试期间,感觉还是很不错的,百度氛围非常棒,装修也不错,看我紧张还让我喝水……很不错。
悟道
整个过程,唯一遗憾的是从面试完到最终确定offer到手,一共等了三周+……期间经历了协调hc,hr休假……想想对自己也是一种磨砺和心性的锻炼啊!
因为这等待的时间太久,之前都是顶多一周就有结果了……在这次等待期间发生了很多有趣的,可悲的,可笑的事情,首先不得不承认这样一个现实:扪心自问,哪个热爱技术或者想靠技术吃饭的应届毕业生要说不想去大的互联网公司体验体验,恐怕是违心说出来的……但是光说不练假把式的太多,红眼病的人太多……如果你拉屎攥拳头暗使劲儿,也是正常的,非常值得尊敬的朋友,但是偏偏他自己还不努力,打游戏……却张口闭口就说:给我xxx的offer我都不去……累死,小心xxx别累坏了(呵呵)……我不去赚黑心钱(一个大写的呵呵)……这其中可谓:进步的结果只有一个,但是拒绝进步的理由却是千万个。
换做其他的公司,不论是bant,还是去哪儿,京东,美团……亦或传统的华为,华三等企业,还是银行软开,研究所等国企、事业单位……无不例外,当你好心分享知识,好心分享面试经验,都会有那么一小部分人去说风凉话,说酸话,见不得你好。这期间也看透了一些人,算是因祸得福。
当然,这真的不算什么,只能说是我个人规划中的一个小目标,人生的一小步刚刚开始,能去这些地方的人大有人在,很多牛人去google,微软……的也不少,真的是不值一提。无奈郭德纲讲话的,是你周围的某些人衬托的。
其次这个过程还是对人心性的磨练,等过高考成绩,等过考研成绩,但是那都有确切出分的时间,有答案可以预测结果。而等待人为因素占不小比重的offer是最痛苦的,因为你不知道结果,你也不知道什么时候出结果,你不知道哪个面试官看你不爽了……这种等待非常熬人,在此我总结一个教训,就是在offer下来之前,永远不要提离职,在offer到手之前,永远不要相信任何口头承诺,只是不停的找新的工作,直到有offer攒底为止,就会消除这种等待的焦虑。
知识总结
应付算法,除了常见的二分查找,快速排序,链表判断有环,链表逆序,二叉树的三种遍历等等考察之外,就是多做做leetcode,或者总结下《剑指offer》,应付大部分的算法题足够了。ACMer直接可以忽略。其实算法的重点是必须熟练手写!
其次就是Java的基本功,主要是JavaSE的考察:
- 了解下java虚拟机的结构,重点是堆的结构,以及各部分的功能要知道,必须掌握现代Java垃圾回收算法的种类,简单调优,和分代算法的思想,了解四种Java引用类型是什么。看周志明的那本《深入理解Java虚拟机》就够了,应届生。
- 熟悉一下LRU的缓存实现原理,重点是如何实现并发,顺便梳理下操作系统的内存存储方式,各种算法,分页,分段,碎片啥的理解下。
- Java面试常考,可以互相引申的就是Java集合的知识点:hashmap和concurrentHashMap原理、区别,hashTable,hashset,各种list等,看《编程思想》结合网上博客文章总结即可。
- 熟悉下多线程设计模式,比如生产者和消费者,不变模式等。有一本日本人写的比较老的书可以看看《Java多线程设计模式》,深入的JUC并发知识最好看下《Java并发编程实践》,老外的书非常棒。并且结合操作系统课程可以梳理下进程,线程的各种知识点。
- 计算机网络,起码的几层协议要会,记住,理解tcp三次握手(具体报文格式),概念:流量控制,滑动窗口机制,选择重传等,一般应届生也就够用了,可以看下老外那本经典的《tcp/ip详解》卷一,深入可以把卷二看了,虽然我没看过。但是确实好。
- 设计模式起码掌握单例,工厂,观察者等,系统的可以看下《Head First设计模式》,应付日常工作和面试足以。设计模式这也是各个框架的考察中常考的点,重点一般就是单例的各种版本的优缺点,线程安全实现,枚举的使用,反射,序列化的攻击应对方法。工厂的类型等。
- 反射,序列化的概念
- clone的一些知识点
- 最好熟悉下类加载机制
- 框架暂时没有遇到考察的。熟悉原理最好,了解过,读过源码更好了。如果是Java大数据方向的求职,相应的就是hadoop,spark等,对应的大数据的算法也要掌握一些。
- 暂时就那么多了。
千回百折:百度Java研发offer斩获记和经验分享的更多相关文章
- 阿里、腾讯、百度、网易、美团Android面试经验分享,拿到了百度、腾讯offer
基本情况 2021届普通本科,Android开发岗. 此文主要是2020年秋招面试经验汇总,最终拿到了百度.腾讯的offer. 主要包括阿里三面,腾讯四面,百度三面,网易三面,美团一场面完. 阿里(由 ...
- 算法转 Java 后端,2021秋招斩获腾讯、京东、百度等大厂 offer 面经分享!|JavaGuide|Guide哥
这是一篇来自算法转Java后端的一位读者的投稿!文章主要分享了作者从迷茫崩溃到最终斩获腾讯.京东.百度等大厂 offer 的经历.文章内容很全面.真实,相信可以对正在准备面试的小伙伴有帮助! 看到公众 ...
- 学生党如何拿到阿里技术offer: 《2016阿里巴巴校招内推offer之Java研发工程师(成功)》
摘要: 这篇文章字字珠玑,这位面试的学长并非计算机相关专业,但是其技术功底足以使很多计算机专业的学生汗颜,这篇文章值得我们仔细品读,其逻辑条理清晰,问题把握透彻,语言表达精炼,为我们提供了宝贵的学习经 ...
- 从零基础到拿到网易Java实习offer,谈谈我的学习经验
微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...
- 从零基础到拿到网易Java实习offer,我做对了哪些事
作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间.本文将会讲到我在这 ...
- 2017实习【Java研发】面经
标签: 实习 面经 Java研发 阿里.腾讯.华为 找2017暑假实习,经历过被腾讯拒绝的无奈,也有拿到阿里和华为offer的喜悦,找实习过程也有一段时间了,在此把之前的面试知识点和经历做个小总结,以 ...
- Java研发工程师知识点总结
Java研发工程师知识点总结 最近一次更新2017年12月08日 大纲 一.Java基础(语言.集合框架.OOP.设计模式等) 二.Java高级(JavaEE.框架.服务器.工具等) 三.多线程和并发 ...
- Java研发书单
Java研发书单 计算机基础:<深入理解计算机系统><计算机网络> 网络方面:<TCP/IP协议卷一><unix网络编程卷一>(部分章节,JAVA主要是 ...
- 2015年阿里实习生面试Java研发工程师 小记
5月5日,广州,阿里实习生面试,Java研发工程师,完全被虐orz 几乎没有Java项目开发经验,接近零基础,去水了一发,毫无悬念的被刷了..RP也是杠杠的,准备过的题目一个都没被问到,算法题也是一条 ...
随机推荐
- jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧
这篇文章总结的是我在使用resizable插件的过程中,遇到的问题及变通应用的奇思妙想. 一.resizable使用注意事项 以下是我在jsfiddle上写的测试demo:http://jsfiddl ...
- 理解CSS外边距margin
前面的话 margin是盒模型几个属性中一个非常特殊的属性.简单举几个例子:只有margin不显示当前元素背景,只有margin可以设置为负值,margin和宽高支持auto,以及margin具有 ...
- WPF 微信 MVVM 【续】修复部分用户无法获取列表
看过我WPF 微信 MVVM这篇文章的朋友,应该知道我里面提到了我有一个小号是无法获取列表的,始终也没找到原因. 前两天经过GitHub上h4dex大神的指导,知道了原因,是因为微信在登录以后,web ...
- Android Ormlite 学习笔记2 -- 主外键关系
以上一篇为例子,进行主外键的查询 定义Users.java 和 Role.java Users -- Role 关系为:1对1 即父表关系 Role -- Users 关系为:1对多 即子表关系 下面 ...
- Node.js:Buffer浅谈
Javascript在客户端对于unicode编码的数据操作支持非常友好,但是对二进制数据的处理就不尽人意.Node.js为了能够处理二进制数据或非unicode编码的数据,便设计了Buffer类,该 ...
- 如何在网页中提取Email地址
开博好久了,今天第一次发表技术文档,之前总是将一些好的事例保存在电脑,时间久了找起来也很麻烦,所以还是放在博客里进行归类比较方便,这样也能将自己在学习过程中的一些心得体会分享给大家,也能给需要的人一点 ...
- 模仿Linux内核kfifo实现的循环缓存
想实现个循环缓冲区(Circular Buffer),搜了些资料多数是基于循环队列的实现方式.使用一个变量存放缓冲区中的数据长度或者空出来一个空间来判断缓冲区是否满了.偶然间看到分析Linux内核的循 ...
- addTwoNumbers
大神的代码好短,自己写的120多行=_= 各种判断 ListNode *f(ListNode *l1, ListNode *l2) { ListNode *p1 = l1; ListNode *p2 ...
- CSS margin详解
以下的分享是本人最近几天学习了margin知识后,大有启发,感觉以前对margin的了解简直太浅薄.所以写成以下文章,一是供自己整理思路:二是把知识分享出来,避免各位对margin属性的误解.内容可能 ...
- Android中的flexboxlayout布局
提到FlexboxLayout大家估计有点模糊,它是谷歌最近开源的一个android排版库,它的前身Flexbox是2009年W3C提出了一种新的布局,可以简便.完整.响应式的实现页面布局,Flexb ...