面试day1

面试day1

面试岗位:c++开发工程师
当前岗位c开发工程师(底软方向)
问项目经历。
答: 刚进公司做的软件能力提升工作,其实就是代码整改。将以前项目留下的不安全函数该为安全函数 , 还有些编码规范的整改,没啥技术含量。做了不久应为能力足够, 就被调去做防护网的建设工作,就是开发自己的一套测试框架。辅助编写各个模块的测试用例。
问:白盒还是黑盒。
答;当然是白盒。这个工作同前面一样主要是过度。要熟悉整个项目的框架和各个模块的工作流程。为以后的开发工作做准备的。
问: 那你接触了那些模块, 选个比较熟悉的讲一下
答:写测试用例过程中熟悉的模块还是比较多。像光模块, L1, L2加载,故障上报等, 我简历上写了个故障上报测试用例, 我就讲下故障上报的流程。故障检测和上报是由一个单独的任务,也就是进程负责。在这个任务里面管理了一个二维链表(可能会被问数据结构, 然而他没有)。第一维管理的是各个模块的模块id, 和他的故障检测时间。故障检测时间就是设备被分为了高速设备和低速设备。每个设备的检测周期不一样, 任务里有个定时器, 有的模块是每个定时器周期检测一次, 有的是两个甚至更多。 在这个定时周期类如果这个模块需要检测是否有故障产生。就会去遍历第二维的链表。这个里面存的的是各个模块注册的的具体告警类型, 他的告警检测函数, 平滑处理机制(就是比方说有的是一秒产生三个告警才算告警产生自类的),故障自愈接口等。
问:没用到容器,多线程这些吗?
答:这是个c的项目。没有容器,就是个二维链表,多线程的话她这边是有线程池,直接通过封装好的接口创建任务就行。(后面竟然没问进线程的知识。)
问:那你对容器有哪些了解?
答:项目中没用到过,就自己写c++小实验用,就了解STL的容器操作。
问: 哪些容器呢?
答:像顺序容器 vector, list, 关联容器map这些。都是比较常用的。
问:知道map的底层实现吗?
答:具体没深入研究过, 但应该是有一个key的数据表, 里面存的是key和这个key指向的地址。访问时通过key得到这个地址然后去地址指向的存储空间取值。至于这个数据表是咋实现的就不清楚,可能是树或其他的数据结构吧。(纯现编)
问:那 map是有序的吗?(答的时候认为是个简单的问题)
答:无序的( 下来查了下。这里的有序和无序不是指集合中的排序,而是是否按照元素添加的顺序来存储对象。按这样解释不管map是由什么实现都是无序的,如果说的是前一种,那就答错了,c++map其实是由红黑树实现的, 印证了我上面的猜想,但是红黑树内部元素是有序的, 所以说c++的 map是有序的, 还有类Map是有hash表实现的, 这一类的的map是无序的。)
问:map能存相同的数据吗? (应该是问的key相同, 当时也没确认, 应该确认下的
答:不能,不过有个能存相同数据的map版本,叫啥忘了,因为没咋用。(multimap)
至此技术面结束。
回顾下上面可能会用的知识点
c++容器的知识:https://blog.csdn.net/crusierLiu/article/details/82626090
进线程的区别:
https://blog.csdn.net/weixin_43117674/article/details/106288093

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读