百度外卖Java一二三面面经
直入正题 一面:(距离一面有四天 其实有的已经忘了) 1.介绍一下自己、项目,项目讲太多讲到第三个的一半的时候就被打断了 2.设计模式都了解哪些 3.进程和线程的区别 4.做题,给一个数字n 写一个输出n位二进制数所能表示的所有数 例如n=2 输出10 01 11 开始用了最笨的办法 求出n位二进制数能够表示的最大的数是2^n-1 然后逐个输出它的二进制数 后来他问我能不能优化 我想了半天说不能 因为你总要输出2^n-1个数的 所以这个循环一定会有2^n-1次的 他说可以创建一个结构 在这个结构上用小于这个复杂度的时间构造出所有的数再输出 其实就是遍历树 当时没想到 很尴尬 5.做题 问了个很简单的数学题 但他第一次问问题的时候我满脑子还在想前一题 又问了他一遍题目 他就又跟我讲了一遍 二面 面试官:你是面java的啊 那我就问你一下linux吧 你对linux了解多少 我:????? 了解不是很多 但毕竟项目是部署到6.linux上的 所以还是用过 7.如何查看、杀死进程 8.如何进行文本操作 9.进程之间的通讯 10.写代码 经典的最大子段和 11.写代码 sql语句 12当某一个数据查询效率不够用的时候怎么优化(怎样优化数据库查询,我从代码优化和数据库优化上答的) 13.jvm怎么进行垃圾回收的 14.tcp和udp的区别 滑动窗口协议 15.说出我的想法 一般人会给自己的手机取名 而某些人用虚拟机给手机取名来达到买外卖时获取新人优惠的目的 怎么识别这些模拟器模拟的手机 讨论了很久 16.对于大数据操作了解吗 例如hadoop什么的(这个问题我忘了) 17.你还有什么想问我的吗 我机智的问了一下他百度外卖是怎么识别别人虚拟机模拟的手机的 他说等你进了我的部门会教你的 :) 这里笑开花 三面 面试官:坐 别紧张介绍一下自己 你是面java的吧 那我就问一下你数据库吧 我:????? 18.写sql 19.为什么要在第三范式的基础上为数据表设计冗余列 举个例 20.如果这个表只有一个联合主键 使用它的其中一个查询是否能用到索引 21.数据库为什么要用b+树 22.b+树的高度怎么算 为什么是这么多 23.二叉树查询一次的时间复杂度 为什么是这样(这里他反复问 我跟他解释了很多次 他没次都说你说的都对 但为什么就是logn 最后他说你能用数学的方法证明一下?我当时眼睛瞪大了看着他) 24.讲一讲tcp和udp的区别 25.tcp怎么保证数据的完整性 26.除了应用层和传输层 其他层你了解吗 27.如果你打开百度输入一写东西按一下查询 整个请求过程是怎样的 28.当你打开进不了百度了 怎么排查错误 29然后就是些hr式的家长里短 本以为3面大概率挂的 没想到居然过了 很开心 希望能帮助到大家#百度##Java工程师#