oppo c++ 一面面经
因为带了本科和研究生的成绩单,所以坐下先看了本科和研究生成绩,问了本科专业排名并做了标记,然后自我介绍。
然后看简历上的项目,问是否是按时间顺序排序(不是),挑一个最熟悉的项目,大概说一下(blabla)
逐字逐句地读并问,用铅笔标记关键字并询问
……此处省略项目(中间还涉及到简历中论文和专利的方案问题)问题
下面是语言基础,先问了c++:
- 面向对象特性(继承、封装、多态)
- 解释一下重载(函数名相同,参数不同),加问那重写呢(有点忘记了重写和虚函数的关联,说的是函数名和参数都相同的重写),再加问重载和重写是实现什么面向对象特性(多态)
问完这两个问题,突然想起我简历上写的是熟悉c,了解c++,跟我确认了一下开始问c:
- 说一下c语言程序的内存分布(堆区、栈区、全局静态区、程序代码区、文字常量区)
- 全局变量存储在哪个区(静态区)
- 如果一个程序中一个全局变量和一个局部变量定义成同一个名字,会报错吗(答的不会报错,编译器会根据定义的等级,强定义弱定义的方向扯,感觉答错了)
- 那这两个变量编译器是怎么识别全局和局部的呢(答得声明的位置?)
- 线程的五种状态(创建、就绪、阻塞、执行、销毁)
- 什么时候阻塞(I/O占用时,释放后回到就绪或者执行)
- 锁了解过吗(blabla说了互斥、条件变量、自旋啥啥的,内心很虚其实,面试官很温和,说了句没事)
- 锁可以锁变量、可以锁代码段,举个例子,当一个线程对某一代码段加锁,另一个线程可以修改这段代码中用到的全局变量吗(答得是我觉得可以,但是理由有点支支吾吾说不清,就请教了面试官,还是一如既往地耐心跟我讲解了一番)
- 你在写代码时得内存申请方式(堆(malloc/free)、栈两种,根据实际使用场景来定blabla)
基础问题想起来再继续补充
后面又问了我本科和研究生的学习方式,感觉自己在说流水账
问兴趣爱好,感觉我有点慢性子且宅🤣说工作中的压力会不会不能适应(举例说明了组里8、12、7的一月封闭经历)
最后问了家是哪里,桌上的零食要不要吃(面试官真的很有耐心而且温和了,再次强调)
出来看了下时间,面了46分钟左右🤣
#OPPO##面经##C++工程师##校招#