千回百折:百度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等,对应的大数据的算法也要掌握一些。
  • 暂时就那么多了。
时间: 2024-08-26 22:42:56

千回百折:百度Java研发offer斩获记和经验分享的相关文章

百度Java研发面试题 总结

1. 单例模式常见的应用场景分析. 在23种设计模式中,单例模式排行老大.虽然理解简单,但是对于应用场景.你真正的熟悉么?使用单例,是由于没必要每个请求都新建一个对象,这样既浪费CPU又浪费内存:之所以用多例,是为了防止并发问题:即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理. 先来说说Java web中的单例应用场景:数据库连接池就是单例模式,有且仅有一个连接池管理者,管理多个连接池对象.我们常用的service和dao层的

百度地图API二次开发小经验分享

最近在做一个物流后台系统,需要用地图来把订单地址展示出来,需要在地图上批量框选坐标进行排单,需要看到配送员的实时位置等等功能. 在高德地图.腾讯地图.百度地图三者间,我选了百度地图,没有原因,个人偏好,因此我也不知道高德地图和腾讯地图好不好用.反正到目前为止,我所想到的功能,百度都有对应的接口提供,点个赞. 一.关于百度地图的JavaScript API 在网站上通过js直接来调用百度的api,使用方法很简单,可以参考官网:http://developer.baidu.com/map/index

两个月网站百度权重由0到2的经验分享

www.baidu.com/p/%E4%B8%AD%E5%8D%AB%E5%B0%8F%E5%A7%90%E5%93%AA%E6%89%BE%E8%83%BD%2Fdetail www.baidu.com/p/%E5%93%88%E5%AF%86%E5%B0%8F%E5%A7%90%E5%93%AA%E6%89%BE%E8%83%BD%2Fdetail www.baidu.com/p/%E5%9B%BA%E5%8E%9F%E5%B0%8F%E5%A7%90%E5%93%AA%E6%89%BE%E

硅谷行记二:走进百度美国研发中心

硅谷行记二:走进百度美国研发中心 牛智超02月01日 12:44 分享到:                                                                                                                                                      4 百度                                       百家                  

IT研发老兵跳槽记之(六):上将伐谋

孙子兵法说:"上将伐谋,其次代交,再次伐兵,其下攻城".令人非常佩服,战争自古以来哪怕是战胜往往也是伤敌一千,自损八百的模式,所以上将伐谋尤为重要. 我们的跳槽其实和攻城略地很相似,一定是伐谋者胜算大.真正进入面试后的技术环节没有什么技巧,应该像前边所讲的"技术进阶篇"去功在平时并进行有的放矢的重点准备.其它环节我们都可以谋划的更为详细周全,既要减少技术环节面试失败的风险,又能提高其它环节成功的概率. 接下来以我自己为例,分以下3点重点说明. 一.跳槽前的心理准备

从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间.本文将会讲到我在这半年里做对了哪些事情. 前言 研究生时期的方向选择 对于即将读研的同学来说,一般有两件事很重要,一件事是选择导师,一件事是选择方向. 我就读于华中科技大学,主修软件工程专业,我在刚读研的时候最头疼的也是这两件事情.首先说明一下,我读的是专硕,所以实验室一般不搞科研,有部分导师会带项目,由于我不打算在

2015年阿里实习生面试Java研发工程师 小记

5月5日,广州,阿里实习生面试,Java研发工程师,完全被虐orz 几乎没有Java项目开发经验,接近零基础,去水了一发,毫无悬念的被刷了..RP也是杠杠的,准备过的题目一个都没被问到,算法题也是一条也没出orz,面试官貌似不知ACM是何物,GG了..不过这次面试收获还是挺大的.. 面试前: 出地铁的时候感觉每个年轻人都是去阿里面试的,快到酒店的时候此感更强烈,果然上电梯的时候就认识了两个从湖南过来面阿里的大三师兄,一个产品一个安卓开发,都好厉害,安卓开发的还已经拿了两个offer,其中一个是小

一次幸运的校招小米Java后台offer

背景 我是一个非985/211的本科.其实最开始并不怎么自信,靠的就是一帮×××互相的鼓励,才坚持到了现在.我小米的面试机会是亲戚给内推的,因为碰巧他们部门校招没有招满,所以很幸运的拿到了这个机会.提一点,我面的是Java后台岗. 面试开始 先申明一点,虽然我通过了面试也拿到了offer,但是至于我是否真的答对了题目,我也不知道,所以这里为了避免误人子弟就不把我的答案发出来了,如果有兴趣可以自行百度,google. 一面: 1.10 亿个 URL,每个 URL的大小< 56B,要求去URL进行去

Java研发工程师知识点总结

Java研发工程师知识点总结 最近一次更新2017年12月08日 大纲 一.Java基础(语言.集合框架.OOP.设计模式等) 二.Java高级(JavaEE.框架.服务器.工具等) 三.多线程和并发 四.Java虚拟机 五.数据库(Sql.MySQL.Redis等) 六.算法与数据结构 七.计算机网络 八.操作系统(OS基础.Linux等) 九.其他 一.Java基础(语言.集合框架.OOP.设计模式等) 1. HashMap和Hashtable的区别 Hashtable是基于陈旧的Dicti