拓竹科技一二面(凉)
timeline
8.28 一面
9.27 二面
一面
体验不是很好(仅对方网络而言),面试官信号不行,全程卡
面试官技术水平不错,我自己菜了
**问题:**
1. 自我介绍
2. 实习内容
3. c++熟悉的点(stl容器使用及实现、常用特性)
4. 说说vector(实现,扩容,大小)
5. 扩容过程中,元素迁移会调用哪些函数(构造函数)
6. 开销太大了,有优化方法吗?(如果是一些像c语言struct的点,只是一些数据的集合,就会调用memmove、memcpy等底层的函数)
7. 还有其他优化吗(如果有移动构造函数,会调用移动构造函数)
8. STL容器模板类,第二个参数的作用(第一个参数是元素类型,第二个参数是用于指定llocator类型或者指定底层容容器)
9. allocator作用(分配内存,答得不行)
10. 操作系统的点?(概念、内存管理)
11. 说说内存管理(虚拟内存,分页)
12. 内存页多少种状态(脏页,未加载,正常的页)
13. fork创建进程,进程进行写操作时(简述了cow)
14. 子进程在写的一瞬间,触发了什么,导致拷贝(缺页中断,分配新页,拷贝内容,写数据,更新页表)
15. cow时,是怎么触发缺页中断的(说了一下猜测,应该是会将一些页会设置为只读,对这些页进行写时就会有cow缺页中断。也说了一下非cow时的缺页中断)
**手撕题目:**
1、求岛的周长:
二维数组,要么为0,要么为1,为1所有相邻块组成一个岛(只有一个岛),求岛的周长。
bfs秒了。
2、多线程输出:
给定一个数字n,要求实现一个类,类有三个成员函数zero、even、odd。三个线程调用这个三个函数交替输出。
具体是:
以n=3为例子。要输出010203
以n=4为例子。要输出01020304
搞了好久,最后还是有bug,会多输出一个数字。
主要问题:
对于线程函数是某个类的成员函数不熟悉
对于线程同步不够熟练,条件变量(还是得先把流程画出来在写代码)
**写不出来,然后手机看到我投的别的公司二面挂了,不想面了**
后面:
- 为什么投我们公司?(没得投了)
- 公司业务(3d打印软件)
- 青睐什么样的候选人(对这方面感兴趣的)
二面
精神不太,面的一坨。后面说回广东,但是投的岗位是上海的,然后开始尬面。
- 自我介绍
- QT用过吗?(无)