首页 > 百度一面面经
头像
菜瓜瓜瓜
编辑于 2020-06-24 10:26
+ 关注

百度一面面经

朋友帮推的日常实习,不是春招、秋招。(第一次面试有点紧张)
Q:先开始自我介绍:
A:我是郑州大学软件工程专业的,大学打了两年多算法到去年年底,然后疫情期间到现在一直在准备基础知识……
Q:先说一下你的项目吧(中间有一些互动,我大概就是这么说的)
A:这是我们老师和企业一起合作的项目,就是在多处放置雷达,通过模拟火车曲面判断火车是否有煤炭溢出的情况。我个人负责接受雷达传输的UDP包,然后对包进行解析,如果火车来的话就把数据存起来,如果没有的话就丢弃掉。个人感觉这个项目听可以的,但是我这边具体负责的一块对技术的要求不是很高,就是通过雷达传来的数值通过概率什么的进行分析判断,还是基本语法用的多。

然后下面基本上就开始知识点轰炸了(问了很多,有的忘了,想到多少写多少吧)。
Q:进程的内存
A:进程的内存分大概分为三部分,堆区、栈区还有程序区(这里还有细分不过我忘了)。然后栈区反向增长,保存的局部变量,变量离开作用域后就会被回收。然后堆区存储的是全局变量和主动申请的内存,容易碎片化。

Q:讲一下new和malloc的区别
A:new是delete释放,malloc是free释放,然后new会对对象初始化,malloc不需要,只是申请了一块内存。
new怎么初始化?
就是调用构造函数啊
你确定需要调用构造函数吗?
应该需要把。
真的需要吗,给我个确定的答案。
我记得需要,要是不对我就不知道了。

Q:说一下虚函数
A:子函数重载父类的函数后,如果用一个父类指针指向这个对象,然后用指针调用这个函数就会运行父类方法。如果这个函数是虚函数就不是了,谁的对象就运行谁的方法。
Q:虚函数是怎么实现的?
A:类维护了一个虚函数表,具体有点忘了
Q:说一下虚析构函数
A:这个没看(其实我看了,当时紧张没想起来

Q:说一下流量控制
这点我没有组织好语言,说的含含糊糊的。只是说了一下naggle算法、延迟ACK和糊涂窗口综合征。但其实tcp这方面我下了挺多功夫的,感觉有点失望。

Q:说一下多态
A:一个类可以派生出多个类,子类可以继承父类……(我当时怎么回答有点忘了,大概就是这样吧)
Q:说明一下什么时候用到多态
A:就比如我们现在有一个按钮button,然后我们如果想实现一个单选按钮多选按钮等花里胡哨的按钮就可以继承这个button了。
Q:多态的优点?
A:子类继承父类有的方法就不用实现,而且比较具有条理性
Q:这是继承,多态和继承不是一个概念
A:那这个我就不清楚了,这个我只是大概知道一些概念

Q:线程通信方式
A:我只知道一个信号量,这方面没有多看,只是大概知道一些。

Q:你数据库怎么样?
A:只知道一些基本语法,高级一点的东西不是很会

Q:stl容器了解吗?
A:比较常用的vector,还有stack(口语不好,发音读错了)、queue、map、set、和数组差不多的array,还有一些链式结构 链表、双端队列等。
Q:大概介绍一下吧。
A:先说常用的vector,类似数组,不过是动态数组,可以添加数据。刚申请一个对象后有一定内存(存储在堆区),然后数据超过内存后vector会重新申请一片更大的内存,把原来的拷贝过去然后删除掉之前的。这个用的时候有个resize函数可以事先设置一下大概需要的内存,就会省去自带的扩容操作。然后可以删除元素,其复杂度是O(n),可以插入元素,在队列末尾插入是O(1),中间是O(n)。
再说一下stack和queue,一个是栈一个是队列,stack先进后出,queue先进先出。
然后map和set,可以插入元素查找元素,背后的数据结构是红黑树,然后 unordered_map是哈希。
Q:哈希是怎么实现的?
A:就是把一个数映射位一个值然后存进去。
Q:什么样的结构?
A:哈希散列的,没有规律,红黑树是有结构的,可以通过遍历得到排序结果
Q:哈希用的数组还是链表?
A:数组
Q:c++11新特性了解吗?
A:之前《c++ primer》看过一些,不过忘了很多,记得auto和智能指针
Q:介绍一下
A:auto可以自动识别对象类型,智能指针记得清楚的有个share_ptr,这个指针申请一个对象,如果所有指向这个对象的指针都离开作用域后这个对象就会被回收销毁,避免了内存泄漏的情况。
Q:share_ptr实现原理?
A:他背后维护了一个计数器,每当有一个指针指向这个对象,计数器+1,指针离开作用域,计数器-1。

然后编程题:(感觉手写代码问的太简单了,显不出优势……)
桌面共享,打开编程软件,上面我写了个打印helloworld
面试官哥哥就说:你在这个单词中间加个逗号,然后把这个字符串分割成一个个单词
我:已知这个字符串,还是不知道?
面试官哥哥:不知道
然后我就直接开始写
面试官哥哥:说一下你的思路
我:……
两分钟写好
面试官哥哥:你写个函数式的接口,修改一下
我……两分钟改好
面试官哥哥:可能你没有太了解我的意思,不过也差不多实现了。

面试官哥哥:写个层序遍历二叉树吧
正要写
面试官哥哥:你先说一下思路
我:画图+讲解……
这时候网络出问题了,然后面试官哥哥打来电话,电话问。

Q:快排序用的什么策略?
A:用的分治策略,先找一个基数,然后比他小的放左边,比他大的放右边,然后对两边的在分别进行同样操作就好了。其实快拍我写过好多次。

Q:讲一下链表翻转。
A:(大一写过,好久不写有点忘了)两个指针,a第一个,b第二个,然后b指向a,然后b等于a=b,b->next,然后循环直到b为null
Q:你再说一遍?
然后我瞬间就意识到那个不对,有节点损失。
A:不对,有节点损失,需要三个指针,abc第一第二第三,然后b指向a,a=b,b=c,c=c->next。

刚面试完感觉还不错,但是今天想了想确实有很多问题没回答出来,而且有很多回答的也不是特别好。面试管哥哥挺好的,整体对话感觉让人舒服,没有一点尴尬。祝我好运吧。

更多模拟面试

全部评论

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

相关热帖

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

近期精华帖

热门推荐