面试day1
面試day1
面試崗位:c++開(kāi)發(fā)工程師
當(dāng)前崗位c開(kāi)發(fā)工程師(底軟方向)
問(wèn)項(xiàng)目經(jīng)歷。
答: 剛進(jìn)公司做的軟件能力提升工作,其實(shí)就是代碼整改。將以前項(xiàng)目留下的不安全函數(shù)該為安全函數(shù) , 還有些編碼規(guī)范的整改,沒(méi)啥技術(shù)含量。做了不久應(yīng)為能力足夠, 就被調(diào)去做防護(hù)網(wǎng)的建設(shè)工作,就是開(kāi)發(fā)自己的一套測(cè)試框架。輔助編寫(xiě)各個(gè)模塊的測(cè)試用例。
問(wèn):白盒還是黑盒。
答;當(dāng)然是白盒。這個(gè)工作同前面一樣主要是過(guò)度。要熟悉整個(gè)項(xiàng)目的框架和各個(gè)模塊的工作流程。為以后的開(kāi)發(fā)工作做準(zhǔn)備的。
問(wèn): 那你接觸了那些模塊, 選個(gè)比較熟悉的講一下
答:寫(xiě)測(cè)試用例過(guò)程中熟悉的模塊還是比較多。像光模塊, L1, L2加載,故障上報(bào)等, 我簡(jiǎn)歷上寫(xiě)了個(gè)故障上報(bào)測(cè)試用例, 我就講下故障上報(bào)的流程。故障檢測(cè)和上報(bào)是由一個(gè)單獨(dú)的任務(wù),也就是進(jìn)程負(fù)責(zé)。在這個(gè)任務(wù)里面管理了一個(gè)二維鏈表(可能會(huì)被問(wèn)數(shù)據(jù)結(jié)構(gòu), 然而他沒(méi)有)。第一維管理的是各個(gè)模塊的模塊id, 和他的故障檢測(cè)時(shí)間。故障檢測(cè)時(shí)間就是設(shè)備被分為了高速設(shè)備和低速設(shè)備。每個(gè)設(shè)備的檢測(cè)周期不一樣, 任務(wù)里有個(gè)定時(shí)器, 有的模塊是每個(gè)定時(shí)器周期檢測(cè)一次, 有的是兩個(gè)甚至更多。 在這個(gè)定時(shí)周期類如果這個(gè)模塊需要檢測(cè)是否有故障產(chǎn)生。就會(huì)去遍歷第二維的鏈表。這個(gè)里面存的的是各個(gè)模塊注冊(cè)的的具體告警類型, 他的告警檢測(cè)函數(shù), 平滑處理機(jī)制(就是比方說(shuō)有的是一秒產(chǎn)生三個(gè)告警才算告警產(chǎn)生自類的),故障自愈接口等。
問(wèn):沒(méi)用到容器,多線程這些嗎?
答:這是個(gè)c的項(xiàng)目。沒(méi)有容器,就是個(gè)二維鏈表,多線程的話她這邊是有線程池,直接通過(guò)封裝好的接口創(chuàng)建任務(wù)就行。(后面竟然沒(méi)問(wèn)進(jìn)線程的知識(shí)。)
問(wèn):那你對(duì)容器有哪些了解?
答:項(xiàng)目中沒(méi)用到過(guò),就自己寫(xiě)c++小實(shí)驗(yàn)用,就了解STL的容器操作。
問(wèn): 哪些容器呢?
答:像順序容器 vector, list, 關(guān)聯(lián)容器map這些。都是比較常用的。
問(wèn):知道m(xù)ap的底層實(shí)現(xiàn)嗎?
答:具體沒(méi)深入研究過(guò), 但應(yīng)該是有一個(gè)key的數(shù)據(jù)表, 里面存的是key和這個(gè)key指向的地址。訪問(wèn)時(shí)通過(guò)key得到這個(gè)地址然后去地址指向的存儲(chǔ)空間取值。至于這個(gè)數(shù)據(jù)表是咋實(shí)現(xiàn)的就不清楚,可能是樹(shù)或其他的數(shù)據(jù)結(jié)構(gòu)吧。(純現(xiàn)編)
問(wèn):那 map是有序的嗎?(答的時(shí)候認(rèn)為是個(gè)簡(jiǎn)單的問(wèn)題)
答:無(wú)序的( 下來(lái)查了下。這里的有序和無(wú)序不是指集合中的排序,而是是否按照元素添加的順序來(lái)存儲(chǔ)對(duì)象。按這樣解釋不管map是由什么實(shí)現(xiàn)都是無(wú)序的,如果說(shuō)的是前一種,那就答錯(cuò)了,c++map其實(shí)是由紅黑樹(shù)實(shí)現(xiàn)的, 印證了我上面的猜想,但是紅黑樹(shù)內(nèi)部元素是有序的, 所以說(shuō)c++的 map是有序的, 還有類Map是有hash表實(shí)現(xiàn)的, 這一類的的map是無(wú)序的。)
問(wèn):map能存相同的數(shù)據(jù)嗎? (應(yīng)該是問(wèn)的key相同, 當(dāng)時(shí)也沒(méi)確認(rèn), 應(yīng)該確認(rèn)下的)
答:不能,不過(guò)有個(gè)能存相同數(shù)據(jù)的map版本,叫啥忘了,因?yàn)闆](méi)咋用。(multimap)
至此技術(shù)面結(jié)束。
回顧下上面可能會(huì)用的知識(shí)點(diǎn)
c++容器的知識(shí):https://blog.csdn.net/crusierLiu/article/details/82626090
進(jìn)線程的區(qū)別:
https://blog.csdn.net/weixin_43117674/article/details/106288093
總結(jié)
- 上一篇: QRegExp
- 下一篇: C++leetcode找出两个有序数组的