3

百度研发面经整合版

本文首发于微信公众号:程序员江湖

软件研发工程师

基础研发工程师

百度智能云

百度核心搜索部

百度今年的提前批有点奇怪,好像都不走流程,牛客上好几个百度内推的帖子,我投了几个,基本上都是百度智能云的,当然也有其他部门。

下面是我的面经,包括三个部门的面试,每个部门侧重点不太一样。

◆ ◆ ◆ ◆ ◆

1一面

百度智能云 账号和消息部门

一面:

1 项目

2 讲一下AOP吧

3 动态代理和静态代理有什么区别

4 TCP和IP报文是否会分片,分别在什么情况下会分片。

TCP分包之后是否还会进行ip分片

5 做个题

无限长轨道。两辆车同方向开,车会滴水,怎么让他们相遇。这题简直像脑筋急转弯。

6 写一个斐波那契数列

递归式,要求改进

dp方式,要求优化空间

用三个变量代替数组进行dp,要求改进

我说数学公式,OK。

7 讲一下Linux的内存结构,我说只会JVM的,他让我说一下。

两者的内存如何映射,是什么关系,不会。

8 没了

二面:

1 项目讲一下,10多分钟去了。

2 排序算法,复杂度,比较。快排的空间复杂度是logn

3 讲一下OSI七层模型,我说了5层模型,然后他让我再补充一下,问了每层的作用,问了wifi属于哪一层。

4 线程间的同步用什么方式,说了object方法。

问我使用hashmap时重写哪两个方法,为什么要重写,巴拉巴拉,什么场景下重写。

5 平时用过什么数据结构,list用哪些有啥区别。

6 Spring中的ioc和aop。ioc的注解有哪些。

autowired和resource有什么区别,作用域有哪些。

autowired如何配置两个类中的一个吗

7 写一个单例模式,有点忘却了,巴拉巴拉搞出一个双重检测的,中间改了多次。

8 Java会有内存泄漏吗,三个区分别什么情况下会产生内存泄漏

三面:

1 主要了解哪些技术

2 分布式系统怎么设计,说了CAP和BASE,最终一致性

3 问我最终一致性是什么,举一下强一致性和最终一致性的例子。分布式事务和消息队列

4 分布式事务的消息id怎么确认顺序,我说使用zk

5 zk的性能瓶颈怎么克服,我说使用redis和redis集群。

6 跨机房的网络延迟怎么解决,我说不懂,他让我猜一侠华北到华南的延迟时间大概是多久,我说大概十秒内。

7 网络这块熟么,说一下socket编程吧。说了一下java的socket

8 网络编程的NIO和BIO区别,阻塞指的是什么意思呢。

9 socket客户端和服务端的连接过程和通信过程说一下。

10 操作系统熟么,一般版,shell和命令熟么,不熟。

11 算法熟么,答不熟。

12 系统怎么设计,设计模式怎么用

13 系统优化怎么做,cpu,IO,内存分别怎么排查问题和调优

14 家乡,女朋友,巴拉巴拉

百度核心搜索

一面:

1 自我介绍

2 docker和k8s了解多少

3 研究生学了哪些课程

4 操作系统了解么,讲一下进程和线程

5 死锁和处理方式

6 内存,虚拟内存和页面置换

7 网络了解么,讲一下三次握手和四次挥手

8 数据库了解多少,mysql索引,事务,锁讲了一些

9 Redis呢,讲了一下数据结构,持久化方式,使用场景

10 分布式了解哪些,负载均衡有哪些方式,说了dns,nginx,lvs和硬件,一致性问题怎么解决,说了2pc,3pc,raft和paxos,zab

10 mysql大表数据查询,怎么优化,分表,分库。

11单链表判环

使用快慢指针解决

12 完全二叉树判断:

二面:

1 项目

2 docker和kubenetes的原理和了解程度

3 docker的cgroup了解么

4 kubenetes的架构,扩容是怎么完成的。

5 Java的四种引用

6 Java的线程通信方式

7 Linux的进程通信方式

8 Java的线程池

9 算法

1 - N + 1这些数中取出N个,问剩下的是哪个。。

我说加起来相减,面试官说取巧了,不能这样。

我说比较数组下标,他还是说取巧。

于是我让他提示我一下,他说了排序再找。。额

然后想了两个空间换时间的办法,一个是用hashmap遍历两个数组。一个是合并数组后统计数字出现次数,也是hashmap

给定一串数字,找出所有可能的IP地址组合,比如192168111,组合是192.168.1.11,192.168.11.1。

应该LeetCode的题。之前自己没写完整,现场憋出来了。

这个代码应该没错。面试官看了二十分钟才说ok。

然后我们就这样沉默了20分钟,中间他就说了几句话。

三面:

1项目

2家庭情况

3学习生活的挑战

4学新技术的方式

5解释一下docker

6意向城市和岗位方向

百度智能云

基础研发工程师

一面

1 项目

2 队列和栈区别

3 两个栈实现队列,两个栈实现最小值栈

4 数据库的事务性质,如何实现这些性质

5 事务隔离级别有哪些,默认是什么级别。

6 已提交读有什么问题,用于什么场景

7 二叉树了解么,平衡二叉树呢,有什么场景会用到呢。

8 僵尸进程和孤儿进程是什么,分别有什么危害。

9 主从复制怎么实现。

10 Redis你用来做什么,为什么不用mq做异步队列

11 分布式文件系统了解么,HDFS讲一下原理

12 Java中一般用什么类型表示价格。

13 Java如何把byte类型转换成字符串

14 Java的string类型为什么是不可变的

15 有什么问题

▼更多精彩内容

腾讯研发面经

阿里中间件研发面经

百度研发面经

蚂蚁金服研发面经

更多校招干货请关注公众号:程序员江湖。

--------------------- 本文来自 How_2_Play_Life 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/a724888...


程序员黄小斜
947 声望124 粉丝