我在百度的采访(共8次采访)
一面:
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