腾讯面经

2018-03-29  本文已影响304人  llag9810

投的Android岗,然后面的全是cpp很玄学……最后居然过了

一面

0. 你会写cpp吗?(我:我就了解一点)

1. malloc和new

2. 什么是拷贝构造函数

3. std::bind和placeholder

4. 智能指针是怎么实现的(引用计数),扯到了Java的垃圾回收,弱引用。和cpp里面的weak_ptr对比了一下

5. 默认参数

6. 菱形继承和虚继承

7. 析构函数为什么是虚函数?构造函数可以是虚函数吗?

8. 左值引用和右值引用,什么是移动语义

9. 如何确保一个对象只在堆区/栈区分配

10. 不用比较运算符,判断两个int是否相等

11. 有四个数a, b, x, y,当x=0时y=a,x=1时y=b。不用if,switch条件判断怎么做?

12. 哈希表和堆排序

13. TCP,子网掩码

14. 让我问他问题

二面

1. 大量单词列表,给一个单词怎么判断是否命中列表?

(我答了哈希表)

哈希表访问为什么是O(1)?

(我答了实质是计算数组的下标直接访问)

数组访问下标为什么是常数时间?

(我答了数组是一段连续的内存空间,数组的下标访问实质上是内存地址的计算)。

那么物理内存,也就是内存条上的内存,是真的连续的吗?

(我答了不是,由此讲到问题2)

2. 物理内存和虚拟内存,什么是分页机制?分页机制有什么好处?知不知道伙伴算法和slub?malloc的原理是怎么样的?

3. TCP滑动窗口

4. 单步调试是怎么实现的?ptrace的原理是什么?

5. 线程同步的方式?是否用过条件变量?

6. 让我问他问题

HR面

1. 查户口。家庭情况,父母职业,老家在哪?

2. 你是独生子吗?父母是否支持来深圳工作?

3. 大学期间最难忘的事情

4. 有女朋友吗?

5. 怎么看待加班?

6. 为什么不读研?未来准备怎么发展?

7. 有什么优缺点,有什么兴趣爱好?

8. HR简单介绍了他们的部门,聊天结束。

上一篇下一篇

猜你喜欢

热点阅读