百度研发面经

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/82702370 百度研发面经   本文首发于微信公众号:程序员江湖 百度智能云 软件研发工程师              百度今年的提前批有点奇怪,好像都不走流程,牛客上好几个百度内推的帖子,我投了几个,基本上都是百度智能云的。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/82702370

百度研发面经

 百度智能云

软件研发工程师

 

 

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

        然后这些部门都安排了面试,没有冲突,所以没有动静的小伙伴可以投投别的部门试试。  

        下面是我的两篇面经,后续会继续更新,每个部门侧重点不太一样。

 

 

 

 

百度智能云研发岗  

 

好像是做控制台方面的组

 

一面:  

 

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分钟,可以说是迄今为止难度最大的一个?

 

 

微信公众号【黄小斜】大厂程序员,互联网行业新知,终身学习践行者。关注后回复「Java」、「Python」、「C++」、「大数据」、「机器学习」、「算法」、「AI」、「Android」、「前端」、「iOS」、「考研」、「BAT」、「校招」、「笔试」、「面试」、「面经」、「计算机基础」、「LeetCode」 等关键字可以获取对应的免费学习资料。 


                     

 

相关文章
|
JSON 自然语言处理 安全
百度工程师厂外生存指南
百度曾经一度被称为中国互联网的黄埔军校。这句话其实有两方面含义:一是说从百度走出来的工程师活跃在中国各大互联网企业中,对整个中国互联网的繁荣发展做出了贡献。二是说百度如同历史上的黄埔军校一般,为外界培育和输送了大量人才,但是自身却在逐步没落,暗示百度的人才流失严重。然而很多百度厂内高管常以『百度是中国互联网的黄埔军校』而自豪,这只是理解了这句话的第一层含义,却殊不知其第二层。高管们不对厂内人才大量流失的原因做反思,反而因为一句黄埔军校而沾沾自喜。着实让人唏嘘不已。
1456 1
百度工程师厂外生存指南
|
7月前
|
Kubernetes Linux 开发者
在CentOS 7.8上使用kubeadm安装k8s 1.26
至此,你已经在CentOS 7.8上使用kubeadm成功安装了k8s 1.26。你可以通过输入 `kubectl get nodes`来查看节点状态,如果显示为Ready,那么恭喜你,你的Kubernetes集群已经准备好了。
293 23
|
8月前
|
人工智能 JSON 网络协议
Apipost支持协议全解析,从入门到摸鱼,轻松搞定!
Apipost是一款强大的协议调试工具,支持HTTP、gRPC、WebSocket、TCP、GraphQL等主流协议,甚至涵盖冷门金融协议如ISO8583和FIX。它不仅提供灵活的调试功能,还支持自动生成文档,大幅提升开发效率。文章详解各协议的应用场景与操作技巧,如HTTP国密算法增强、SSE实时流式传输调试、WebSocket长连接维护、GraphQL Schema自动生成等。此外,Apipost通过环境变量、脚本加持和文档生成等功能实现自动化调试,助你轻松搞定从入门到精通的各类需求。无论是HTTP还是复杂金融报文,Apipost都能让你事半功倍!
|
人工智能 大数据 网络虚拟化
引领开放 阿里云持续推动开源生态发展
阿里云基础设施网络承办了“SONiC技术与应用分论坛“暨”第二届SONiC社区中国区分论坛“,携手国内外行业精英,分享了围绕SONiC的实践和创新
|
JSON API 数据格式
如何获得淘宝/天猫商品类目 API 返回值说明
在淘宝开放平台(Taobao Open Platform)或天猫开放平台(Tmall Open Platform)中创建一个新的应用,并为该应用配置必要的权限。
|
消息中间件 NoSQL 算法
第一次凡尔赛,字节跳动3面+腾讯6面一次过,谈谈我的大厂面经
简单来说,就如标题一样,我今天也想要凡尔赛一次,原来大厂的面试也没有想象中的那么难,字节跳动3面+腾讯6面,就这么一次性过了,下面就细细聊聊我的大厂面经吧,希望能够给金三银四要面试的朋友提供一些经验。
|
语音技术
百度TTS
百度TTS
1749 0
|
网络协议 安全 网络性能优化
TCP与UDP的区别与适用场景
TCP与UDP的区别与适用场景
405 0
|
数据采集
百度蜘蛛ip段大全分析爬虫式
百度蜘蛛ip段大全分析爬虫式:https://www.20200824.com
631 0