高德
北京市 · 互联网 · 100-499人
公司实力雄厚
并购
A级纳税人
高新技术企业
瞪羚企业
经营产品·1项目信息·3

面试经验

“有难度”
“体验一般”
581 条面经
面试官hr难度技术看中专业技能有收获优化二面笔试2轮算法代码经验一面深挖项目面试有难度思维redismysql逻辑
ltty
C++
确定通过感觉靠谱
**1、介绍一下最近一年的项目**答:巴拉巴拉---**2、说下这个项目你解决过什么问题?**答:巴拉巴拉,聊到内存泄露---**3、你觉得你遇到的内存泄露都有哪几种?**答:有继承关系的类父类析构没有声明成虚函数的、malloc、new指针未释放的、vector里面指针未释放的,还一个内存占用问题就是vector元素只进行了pop,没有释放内部数组内存,导致容器占用的内存逐渐变大。---**4、那你是怎么释放vector里面的数组内存的?**答:vector str, str.swap(vector())----插曲:面试官发了个阿里的链接,在线刷题,伪代码即可。1、设计一个方法求二叉树的高度写出来了。2、设计一个方法对一个有序的单向链表去重第一次没看到有序用的set,面试官指出来了让我修改。去掉set改判断值就可以了。第二次提醒跳过的节点为什么没有释放,加了delete。---**5、介绍下虚函数**答:是实现多态的核心,父类声明虚函数,子类重写。虚函数原理是一个类的实例的首地存放的是虚函数表指针地址,使用该地址可以访问虚函数表,起初虚函数表内都是父类虚函数的地址,当被实例化为子类时,会用子类虚函数的地址替换虚函数表中的对应函数地址,实现函数覆盖。---**6、介绍下进程和线程**答:进程是系统资源分配的基本单位,线程是CPU调度的基本单位。切换:进程切换:1、切换页表目录(虚拟内存到物理内存的映射)2、切换内核堆栈(整个内存空间)3、上下文切换(核心消耗是需要把进程数据放入到寄存器)4、刷新TLB(就是padg cache,存放磁盘数据索引,加快磁盘文件访问效率)线程切换:1、切换栈(隶属于同一进程相同的内存空间,只切换栈)2、上下文切换(没有进程数据的换出换入,仅切换少量寄存器)数据同步:进程:通信:普通管道、有名管道、消息队列、共享内存、内存文件映射、socket同步:信号、信号量线程:通信:共享变量地址即可同步:各种锁,互斥锁、自旋锁、读写锁、条件变量---**7、fork介绍一下,返回值都代表什么意思**答:返回0是子进程、返回正数为父进程,正数是子进程PID,返回-1执行失败---**8、智能指针说一下**答:使用计数记录引用次数,计数为0时析构才释放内存---**9、linux中so和a的类不需要导出、windos的dll和lib类需要导出才能使用这是为什么?**答:这个不知道,面试官说不要紧---**10、用过什么开源库**答:pcap网络收发包和一个开源的http协议文件,boost没用过。面试官回复不要紧。---**11、了解数据库吗?**答:自学过mysql和redis,原理和指令都学过,但是指令记不太清楚了。面试官回复可以没再细问。---**12、了解分布式吗?**答:不了解。面试官回复不要紧,这个可以学习。...查看更多
2 年前 发布
加载中
看准网高德高德面试经验

找工作