百度研发面经

本文出自个人公众号:程序员江湖。
更多技术文章和校招干货,请关注个人公众号。node

百度研发面经程序员

百度智能云面试

软件研发工程师正则表达式

        百度今年的提早批有点奇怪,好像都不走流程,牛客上好几个百度内推的帖子,我投了几个,基本上都是百度智能云的。  算法

        而后这些部门都安排了面试,没有冲突,因此没有动静的小伙伴能够投投别的部门试试。  shell

        下面是个人两篇面经,后续会继续更新,每一个部门侧重点不太同样。数据库

 **设计模式

<section data-style-type="6" data-tools="新媒体排版" data-id="9106">数组

百度智能云研发岗  浏览器

好像是作控制台方面的组

一面:  

1自我介绍,项目

2 static关键字有什么用,static修饰不一样东西时有什么做用,内部类用static修饰和不用static修饰有何区别。

3 hashmap,hashtable,concurrenthashmap区别和场景

4 volatile关键字有什么用

5 jvm分区讲下,做用讲下,gc算法讲一下,gc是否会有停顿或者延迟。

6 讲一下OOM和内存泄漏的例子,为何有GC还会出现内存泄漏和内存溢出呢

7 线程和进程的区别,通讯方式的区别。

8 悲观锁和乐观锁,说一下Java和数据库分别怎么实现的。

9 数据库索引说一下,除了B+树索引还有什么索引。

10倒排索引说一下,若是关键字不少,怎么优化。使用前缀树和hashmap优化。

11 前缀树的结构和原理说一下。

12 浏览器发起http请求过程,越详细越好。

13 缓存和数据库的一致性怎么保证

14 网上写代码,写了一个快排

15 没了。

二面:  

1 自我介绍

2 项目中难点,用到的技术

3 多线程,说一下线程的状态和状态转换,详细问

4 多线程的sleep方法和wait方法为何来源不一样,一个是object方法,一个是Thread的方法。

5 为何object的wait和notify必须在同步块中使用,不在同步块使用会报错么,编译报错仍是运行报错。

6 jvm讲一下gc吧,两个对象的引用循环依赖,会不会被垃圾回收,什么状况下会什么状况下不会呢

7 GC root是哪些位置呢,我说记不起来,他说你不用记,其实就是运行时的一些对象和变量,好比局部变量表,方法区的元数据好比fianl,static变量,本地方法栈执行的方法。  

8 数据库了解哪一个。Redis说一下为何是单线程的,不会很慢么,有什么好处。

9 Redis的IO请求模型,是否是IO多路复用呢。

10 Spring的interceptor和filter有什么区别。我说没区别,错!

11 网络这块,说一下dns请求的过程吧,dns是否会访问缓存呢,缓存在本地和浏览器,还有dns服务器上是否是都有。

12 get和post的区别讲一下,底层的实现有区别么,都是基于TCP,那么如何限制get的url长度,在哪一层限制的。

13 数据结构熟么,讲一下树和图吧,树的层次遍历使用什么结构,相应的图的遍历呢。讲讲最小生成算法,还有迪杰斯特拉。

14 数组,找到惟一一个出现两次的数。

刚开始听错,说了位运算。

a 而后讲了数组计数,hash计数,排序比较。

b 而后面试官说条件给的是1到N-1的N个数字,从新想一下。

c 说了根据数组位置和数字比较进行判断。面试官最后说能够用相加求差值来判断。

15 一个10000如下的数组,内存够。里面只有1,2,3。排下序。

a 普通排序O(nlogn)

b 荷兰旗问题,双指针解决。O(N)

c 统计数量,重放数组O(2N)

d 另外搞一个数组,把1放头,3放尾,也是双指针。O(N)。空间复杂度O(N)

16 没了。

全程50分钟

三面HR  

巴拉巴拉巴拉。基本上问题都大同小异。

百度智能云 数据库部门  

一面:  

1 数据库的事务,四个性质说一下,分别有什么用,怎么实现的。一致性没讲好。

2 讲到了redo和undo日志,问我分别有什么用,说redo日志说错了。

3 数据库的隔离性如何保证,使用悲观锁和乐观锁有何区别。MVCC的设计目的是什么,怎么使用版本号判断数据的可见性。

4 问了一道算法,1到N的全部数字,按照字典序打印,怎么作。

说了用数组排序,问复杂度,扯了半天。

怎么优化,按照数字特征顺序打印,问这个东西和什么结构比较像。提示是树,而后说了个多叉树,问我怎么实现,最后其实使用dfs遍历树的每一个分支。

5 多线程并发的同步实现,有两个方法,每一个方法里有a部分代码和b部分代码,我要让两个线程分别执行两个方法,而且让他们运行完a部分代码再一块儿向下执行,如何实现。

6 我说了用cyclicbarrier实现,互相等待await。

而后他问我怎么用信号量实现,而且提示能够再用一个线程。

而后我说了个方案。

7 问了项目

8 如何把优化递归的代码

改为尾递归或者循环。

面试官说不是,引导说用栈实现递归。

问我栈中须要压入哪些数据。他说应该是方法参数,返回值,以及返回地址。

二面:  

1 自我介绍,项目 10分钟过去

2 服务器如何负载均衡,有哪些算法,哪一个比较好,一致性哈希原理,怎么避免DDOS攻击请求打到少数机器。

3 TCP链接中的三次握手和四次挥手,四次挥手的最后一个ack的做用是什么,为何要time wait,为何是2msl。

4 数据库的备份和恢复怎么实现的,主从复制怎么作的,何时会出现数据不一致,如何解决。

5 今天面试太多了,记不清了。。。

6 开源的技术看过用过么,分布式存储的了解么。

7 想作什么方向的开发。

8 Linux查看cpu占用率高的进程

9 查看占用某端口的进程和某进程监听的端口

10 如何查询日志文件中的全部ip,正则表达式

三面(8.3号更新):  

数据库部门真的很严格,问题都挺难的。

1 讲一下项目

2 平时了解什么操做系统

Linux,说一下Linux排查问题经常使用的命令,ps,top,netstat,free,du等等

3 Linux的内存管理算法,问了一下是否是页面置换算法,他说是。

说了lru和fifo,问我lru有什么缺点,没答上来。

4 Linux的文件系统了解么,讲了一下inode节点,文件和目录的原理。他问我了不了解具体的文件系统ext2,ext3,答不会。。

5 进程通讯方式有哪些,问我分别怎么使用,管道有哪些类型,各有什么优缺点。

6 问我服务器硬件了解么。。一脸懵逼,问了我懂不懂Raid,瞎扯了几句就说不懂了。

7 shell了解么,没怎么写过。

8 据说你会Java,说一下JVM内存模型把,有哪些区,分别干什么的

9 说一下gc算法,分代回收说下。

10 设计模式了解么,说了7种,问我分别怎么用,实际应用过吗,稍微扯了一下。

11 MySQL的引擎讲一下,有什么区别,使用场景呢。

12 查询最新的10条数据,想了好一会,order by id desc limit 10

13 MySQL的union all和union有什么区别,我瞎掰了一下,应该不对。

14 MySQL有哪几种join方式,底层原理是什么,答不会,只知道表现形式。

15 Redis了解哪些啊,数据结构和基本原理把。

问我Redis怎么作集群,答了主从哨兵和cluster。

Redis的持久化怎么作,aof和rdb,有什么区别,有什么优缺点。

16 Redis使用哨兵部署会有什么问题,我说须要扩容的话仍是得集群部署。

17 分布式系统了解么,说一下Hadoop了解啥。

我说基本组件稍微了解过,简单搭过环境。

18 MapReduce的combiner干啥的,我说是合并结果的,问我啥时候会用到,答不知道。

19 Hadoop分发任务时,有个job失败了,hadoop会怎么处理,我答不知道,猜是会继续执行。。

20 hadoop分发任务,若是有一个节点特别慢拉慢了总体速度怎么办。我猜想是经过yarn分配相同的资源给每一个任务,能够避免这种状况,他好像不太满意。

21 hadoop答得很烂。问了我两个10g文件比较,2g内存,重复率很高,筛选出不一样的内容。我说拆成十份hash,每份两两比较hash的结果集,貌似他说OK。

22 排序算法了解哪些,巴拉巴拉。

23 用队列计算一个树的高度,我说用层次遍历记录节点高度。

24 一个黑名单集合,数据量很大,快速查询一个值是否在集合里,怎么设计,我说布隆过滤器。

25 仍是上一题,说这个黑名单可能须要动态地增删改,如何设计才能避免访问响应太慢。我没思路,瞎扯了一下加硬件,用内存存,都被驳回了。而后他说算了。

26 上一题的黑名单作成分布式,怎么作。说了分片的方案,根据地址的hash值肯定分片所在节点。

27 分布式数据库了解么,我不太明白他问的是啥,说不了解,感受应该是问数据库的分布式方案。

28 有什么想问的,据他所说还有2-3轮面试,惊了。

全程50分钟,能够说是迄今为止难度最大的一个?

▼更多精彩内容

腾讯研发面经

阿里中间件研发面经

大侠,这里有干货!

喜欢记得来一个

相关文章
相关标签/搜索