百度 C++/PHP/GO研发工程师 C++ 一面
- 自我介绍
- 项目中有什么难点,怎么解决的
- 内存布局(具体到每个区在内存中的顺序)
- 堆区、栈区的区别
- 虚拟内存与物理内存的区别
- 虚拟内存的大小有什么限制,举个例子
- 开发时如何避免内存泄漏
- 百万级行代码项目出现内存泄漏如何定位,答:第三方库
- 这个第三方库的实现原理知道吗(自己给自己挖坑😭),如果让你自己设计一个内存泄漏检测工具,你会怎么做(会个der)
- c++的多态是怎么实现的
- 基类和子类的虚函数表是怎么表达的
- 锁的底层原理
- 原子操作熟悉吗?
- 在自己开发的APP中通过HTTP协议向baidu.com发送"hello",整个过程通过了哪些协议层,走了哪些协议
- baidu.com怎么解析到ip递增的
- 拿到了baidu的ip地址后,在自己的路由器上(子网网关) 如何做转发,答:OSPF协议转发
- OSPF具体是怎么转发的(忘了😭)
- 在应用程序中,分别与内网的地址和baidu.com进行网络通信,两种通信的调用层次有什么差别
- 内网外网如何区分的
- 子网掩码在哪一层做抉择的
- 多进程与多线程分别适用什么场景(直接尬住),各有什么优缺点
- 内存置换在什么场景下使用LRU算法
- LRU的实现方式
- 根据上一问的回答实现具体代码
- 假设LRU缓存的数据,需要过期时间,怎么设计(答:和webserver的定时器差不多,每个缓存开启一个定时器,使用时间堆)
- 根据上述回答完善代码(又给自己挖坑,写完堆的下滤操作后面试官让讲具体思路)
- 反问:部门业务,部门主要使用什么语言
一面我自己都感觉菜的要死,居然一个半小时后发来2面邮件,感觉是KPI
#c++面经##百度#