首页 > XX提前批一面凉经
头像
迟缓的比尔在看牛客
编辑于 2021-07-20 14:11
+ 关注

XX提前批一面凉经

提前批校招一面百度,总结:

大致流程就是:先自我介绍,讲了一些项目的事情,然后以一些项目为切入点,问了几个问题,回答的不全面,有的甚至回答不上来。。。

1、缓存(Cache)与缓冲(buffer)的区别:
Cache:是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
buffer:是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。
缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。

回答的不全面,只考虑到了解决速度不匹配的问题,别的特性没想到。。。

2、TCP与UDP的区别,中间加问如果TCP通讯过程中出现了异常如何处理?

3、线程安全(确实太菜,不知道。。。)
从操作系统的角度只回答了一个线程锁。。。

4、C++里面的STL有哪些容器?底层实现是什么?常用的操作有哪些?操作的时候有哪些要注意的地方?这些操作对应的时间复杂度如何?STL是不是线程安全的?
分为两大类:关联型容器和序列型容器:
vector:巴拉巴拉
deque:。。。
stack:。。
queue:。。。
set:。。。
map:。。。
multiset:。。。
multimap:。。。。
多个读取者来说是线程安全的,对不同容器的多个写入者是线程安全的。

回答的不全面,中间即使被引导了好几次都没有完全get到面试官小姐姐的点。。。

还有一些其他问题,记性不太好,记不住了。。。

最后是一个手撕代码环节,求解一棵二叉树存在的在任意两个结点之间的最长路径:
思路:递归的方式,比较三种情况取最大值:max{左子树存在的最长路径,右子树存在的最长路径,左右+1}
没写出来,😥😥😥,总时长应该是60min,结果面了刚好120min。。。
自己太菜,被引导都找不到正确的思路,尤其是手撕代码环节。。。

总结:
1、实事求是,会就是会,不会就是不会,不然你接不住面试官后面的问题;
2、敲代码之前,一定要搞清楚面试官的问题,或者说搞清楚代码需求,然后把思路理清,不然答非所问就很尴尬;
3、先挂为敬

更多模拟面试

全部评论

(3) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐