我在百度的采访(共8次采访)

百度AI云数据库部

一面:

1数据库事务,四个属性,分别有什么用,如何实现。一致性不好。

说到重做和撤销日志,他问我分别有什么用,说重做日志不对。

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

4问了一个算法,从1到N的所有数字都按字典顺序打印,怎么做到的。

我讲了按数组排序,问了复杂度。我说了很久。

怎么优化,按数字特征顺序打印,问一下这个东西类似什么结构。提示是树,然后我说了一个多分支树,问我怎么实现。最后,我实际上使用了dfs来遍历树的每个分支。

5.有两种方法可以实现多线程的同步和并发。每个方法都有A部分代码和B部分代码。我希望两个线程分别执行这两个方法,让它们运行A部分代码,然后一起执行。如何实现?

我说用循环障碍来实现等待,等待对方。

然后他问我信号量怎么用,建议可以用另一个线程。

然后我说了一个计划。

7问及项目

8如何优化递归代码

改为尾部递归或循环。

面试官说没有,向导说用栈实现递归。

问我什么数据需要压入栈?他说应该是方法参数,返回值,返回地址。

两面:

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

如何平衡服务器的负载,有哪些算法可用,哪些更好,一致哈希的原理,如何避免DDOS攻击请求击中少数机器。

TCP连接和四波中三次握手的作用是什么,四波最后的ack是什么?为什么时间在等待?为什么是2msl。

如何实现数据库的备份和恢复,如何做主从副本,什么时候会出现数据不一致,如何解决。

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

你见过和用过开源技术吗?你了解分布式存储吗?

7你想往什么方向发展?

8 Linux来查看cpu使用率高的进程。

9查看占用一个端口的进程和一个进程监听的端口。

10如何查询日志文件中的所有ip和正则表达式?

三面(8月3日更新):

数据库系真的很严格,问题也挺难的。

1说说这个项目吧。

2你平时了解Linux什么操作系统?说说Linux故障排除常用的命令,比如ps,top,netstat,free,du等等。

3 Linux内存管理算法,问是不是页面置换算法,他说是。说lru和fifo,问我lru有什么缺点,没回答。

你了解Linux的文件系统吗?说说inode节点,文件,目录的原理。他问我是不是不知道具体的文件系统ext2,ext3,答案是不知道。

5.流程沟通的方法有哪些?分别问我怎么用,管道有哪些种类,有什么优缺点。

问我知不知道服务器硬件。。他一脸懵逼的问我知不知道Raid,胡言乱语了几句就听不懂了。

7壳牌知道吗?没怎么写过。

我听说你懂Java。告诉我JVM内存模型,它有哪些区域,有什么作用。

9讲讲gc算法,讲讲分代回收。

你知道10的设计模式吗?我说了七种,分别问我怎么用。你实际应用过吗?我拉了一下。

11 MySQL的引擎,有什么区别和使用场景?

12查询最新的10数据,想了很久,按id desc限制10下单。

13 MySQL中union all和union有什么区别?我编的,应该是错的。

14 MySQL有哪些加入方式?背后的原理是什么?不,我只知道表现形式。

15 Redis懂什么,数据结构和基本原理。问我Redis怎么集群的,回答主从哨兵和集群。如何让Redis持久?aof和rdb有什么区别?有什么优缺点?

16 Redis用哨兵部署有什么问题?我说如果需要扩展,还是需要集群部署。

你了解17分布式系统吗?说说Hadoop懂什么?我说我对基本组件有一点了解,简单搭建了环境。

18 MapReduce的合并器是做什么的?我说是合并的结果。我问什么时候用,不知道。

19 hadoop分发任务时,一个作业失败。Hadoop会做什么?我不知道,但我猜会继续执行。。

20个hadoop分发任务,如果有一个节点特别慢,拖慢了整体速度怎么办?我猜yarn可以通过给每个任务分配相同的资源来避免这种情况。他似乎不满意。

21 hadoop回答不好。让我对比了两个10g的文件,2g内存,高重复率,过滤掉了不同的内容。我说把它分成十个散列,比较每个散列的结果集。他好像说OK。

排序算法知道什么,巴拉巴拉。

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

24一个黑名单集合,数据量很大,快速查询一个值是否在集合中,如何设计,我说Bloom filter。

25还是最后一个问题,说这个黑名单可能需要动态添加删除修改,如何设计才能避免访问响应慢。我一点都不知道。我胡说八道加硬件存内存,被拒绝了。然后他说,算了。

上一个问题的黑名单怎么分发?讨论了分片的方案,根据地址的哈希值确定分片所在的节点。

你了解分布式数据库吗?我不太明白他问的是什么。他说不明白,觉得应该问一下数据库的分布式方案。

你想问什么?据他说,面试有2-3轮,令人震惊。

全程50分钟,可以说是目前为止最难的一次?

百度AI云账号和新闻部

一面:

1项目

说说AOP吧。

3动态* * *和静态* * *的区别是什么

TCP和IP消息是否会碎片化,在什么情况下会碎片化。

TCP分包后会出现ip碎片化吗?

5做题

无限长的轨道。两车同向行驶,车会滴,怎么会相遇?这个问题就像一道脑筋急转弯。

写一个斐波那契数列

递归公式,需要改进

Dp模式,需要优化的空间。

对dp使用三个变量而不是数组需要改进。

我说数学公式,好吧。

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

两者的记忆如何映射,有什么关系,没有。

8没了

两面:

先说1项目。用了10多分钟。

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

3我来说说OSI七层模型。我说五层模型,然后他让我加,问各层功能,问wifi属于哪一层。

4.线程之间的同步是以什么方式进行的,提到了对象方法。

问我用hashmap的时候重写哪两个方法,为什么重写,Barabara,什么情况下重写。

5平时都用过哪些数据结构,和list里用的有什么区别?

Ioc和aop在6 Spring。国际奥委会有何评论?

autowired和resource有什么区别,作用域是什么?

autowired如何配置这两个类中的一个?

7我忘了写单例模式。巴拉巴拉做了双重测试,中间改了很多次。

8 Java会出现内存泄漏吗?三个区域在什么情况下会出现内存泄漏?

百度AI云

这似乎是基本R&D工程师的职位。

一方

1项目

2队列和堆栈的区别

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

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

5什么是事务隔离级别,什么是默认级别?

提交的阅读有什么问题,用于什么场景?

7二叉树,平衡二叉树,会用到哪些场景?

什么是僵尸进程和孤儿进程,它们的危害是什么?

9如何实现主从复制。

10 Redis你用它做什么?为什么不用mq作为异步队列?

11分布式文件系统,你知道的,HDFS,说说原理。

12 Java中常用什么类型的价格?

13 Java如何将字节类型转换成字符串

为什么14 Java的字符串类型是不可变的?

15怎么了?

百度核心搜索

一面:

1自我介绍

2 docker和k8s知道什么?

研究生都学了哪些课程?

你了解操作系统吗?说说进程和线程吧。

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库伯涅特斯的结构,以及资料片是如何完成的。

5 Java的四个参考文献

6 Java的线程通信模式

7 Linux进程通信模式

8 Java线程池

9算法1-N+1把这些数中的N个拿出来,问剩下的是哪一个。。我说加减法,面试官说有猫腻。不可能是这样的。我说比较数组下标,他还是说很棘手。

于是我让他提醒我,他说整理一下再找。。额

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

10给定一串数字,找出所有可能的IP地址组合,如19216811,组合为192.168.1.10。应该是LeetCode的问题我之前没有完全写出来,但是在现场压制了一下。

这个代码应该是正确的。面试官看了二十分钟才说ok。然后我们沉默了20分钟,中间他说了几句话。

最后面试官说他们部门有两轮面试。

下次见!如何获得答案:赞、评论、关闭~

原文来源:/discussion/90112?type = post & amp订单= jing & amppos = & amppage = 2 & ampncTraceId = & ampchannel =-1 & amp;source _ id = search _ post _ nctrack & amp;gio _ id = FD 441016d0b 12571a 898266 fe8d 1c8c 6-1657195040955