2022年百度测试面试题整理 .pdf
《2022年百度测试面试题整理 .pdf》由会员分享,可在线阅读,更多相关《2022年百度测试面试题整理 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学而不思则惘,思而不学则殆1. 解释一下 JAVA的面向对象和 C的面向过程的区别面向过程的语言管理起来比较麻烦,一条代码地执行, 而面向对象代码可以进行重用2. 什么是树,什么是二叉树,什么是平衡树3. K层楼,两个玻璃板,最少多少次能测出在哪儿层楼杯子会碎既然第一步(确定临界段)的投掷数增加不可避免,我们就让第二步(确定临界层)的投掷数随着第一步的次数增加而减少。第一步的投掷数是一次一次增加的,那就让第二步的投掷数一次一次减少。假设第一次投掷的层数是f ,转化成数学模型,就是要求f+(f-1)+.+2+1=99,即 f(f+1)/2=99(第一次测试点选择 100 层是无意义的,必然会碎,
2、所以无任何测试价值,所以第一次测试点k是 1-99 中的一个数 ) , 解出结果等于 14。 丢下第一个玻璃板的楼层就分别是 14 ,27 , 39 , 50 , 60 , 69 , 77 ,84 , 90 , 95 , 99 。4. 两个人交流一次能得到相互的信息,三个人呢?N个人呢?5. 你为什么选择做测试而不是研发呢?答:测试和研发是相通的6. 讲做过的最深刻的一个项目7. 线程与进程有什么区别子进程和父进程有不同的代码和数据空间, 而多个线程则共享数据空间, 每个线程有自己的执行堆栈和程序计数器为其执行上下文. 多线程主要是为了节约CPU 时间, 发挥利用 , 根据具体情况而定 . 线
3、程的运行中需要使用计算机的内存资源和 CPU 。通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。8. 进程间通信有什么方法shared memory,message passing 。管道( Pipe )及有名管道(named pipe ):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此, 除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;信号( Signal ):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通
4、信外, 进程还可以发送信号给进程本身;Linux 除了支持 Unix 早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于 BSD 的, BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数);报文(Message)队列(消息队列) : 消息队列是消息的链接表,包括 Posix 消息队列systemV消息队列。 有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。精选学习资料 -
5、- - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 7 页学而不思则惘,思而不学则殆共享内存: 使得多个进程可以访问同一块内存空间,是最快的可用IPC 形式。 是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。信号量( semaphore ):主要作为进程间以及同一进程不同线程之间的同步手段。套接口( Socket ):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由 Unix 系统的 BSD分支开发出来的,但现在一般可以移植到其它类Unix 系统上: Linux和System V 的变
6、种都支持套接字。9. 同步有那些方法Java synchronize wait notify 事件 临界区域互斥器 信号量 锁10. rpc 是通过什么实现的?通过 socket 实现的11. 一个表,主键是 id ,还有有名字,个人简介等。找出出现次数在a,b 的名字。12. 找出平衡点public class Test public int findBalanceableNod( int a) if (a = null ) return - 1 ; long sum = 0l ; long subSum = 0l ; for ( int i = 0 ; i a.length; i + )
7、sum += ai; for ( int i = 0 ; i a.length; i + ) if (subSum = sum - subSum - ai) return i; else subSum += ai; return - 1 ; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 7 页学而不思则惘,思而不学则殆13. 给一个三层楼房,有两部电梯,问要测试些什么。14. 有一个数据库,随着数据的增加响应越来越慢,问怎样改进。我首先反应过来的是多用几台机器,每台机器负责一部分, 然后汇总返回给用户。他点点头,说思路是对的,马上追问
8、如果只有一台机器怎么办?他说,同样的思路,能不能分块考虑呢?我说按照区段划分吧,例如1-10000 一段,10001-20000 一段。他说那随着记录的增加,有什么方法保证能平均地分到每块呢?我想了想,还是请他给提示。他说,例如1001 分到第一块, 1002 分到第二块1005分倒第一块 ,1006 分到第二块我反应过来了, 说按照关键字求余 。他终于点头了。15. 有若干个文件,每个文件里有很多单词,用空格隔开。现在给出一个单词,要求返回单词出现在哪些文件中。我想了一下,说建一个从关键字到出现的文件记录的索引,用hash 或者 B+树。16. 他又问能不能把具体的数据结构写一下?17. 然
9、后问了是否用过百度mp3搜索。问按照什么方式对mp3结果排序。我说按照链接数多的, 页面访问量大的, 链接目标的大小, 还有优先考虑正规网站的链接,还有关键字模糊匹配等。最后他补充了一个速度因素。18. 用 c 完成一个函数 char* function(char * s,int n),返回 s 的前 n 个字符,要求尽量考虑健壮性。19. 假设有 N个(大约几百万个文件),每个文件存储的都是英文单词,文件大小都是 1MB 左右。输入一个单词,输出包含这个单词的文件名(按文件大小排序)。要求尽量优化算法。一开始, 理解成文件里面存的是不定长的连续字符串了,光给了个分块扫描,还想着用 KMP ,
10、被否决;磨了一段时间,后来发现文件的单词是用空格隔开的。再提示下,给出了个多叉树结构(类似于字典树?),每个节点存储包含这个单词的文件名链表。后来想到 二叉排序树 ,提到了,好像这个就是面试官要的答案,不过我又提出用排序树查询方便, 但是输出排序的结果 (深度或广度遍历) 没有直接链表遍历方便。20. 问了个 socket 编程,如何设计服务器端。回答多线程, 每一个请求开一个线程。 又问假设大量用户请求来到的话如何优化(提示线程的创建与销毁比较耗资源)。想到数据库连接池的原理,套用在这里(其实不知道socket 能不能这样用),貌似面试官还比较满意。精选学习资料 - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年百度测试面试题整理 2022 百度 测试 试题 整理
限制150内