linux socket 面试题,面试题
1、網(wǎng)絡(luò)TCP/IP協(xié)議
2、三層路由架構(gòu),搭建局域網(wǎng)
3、自動(dòng)化測(cè)試工具robotframework的使用,怎么管理測(cè)試腳本
4、shell腳本可用過?怎么替換一個(gè)文本中指定的內(nèi)容?
5、python的多線程怎么使用的?正則表達(dá)式中serach和match的區(qū)別?
6、性能測(cè)試工具,怎么設(shè)計(jì)性能測(cè)試?
7、代碼靜掃問題有哪些分類?
學(xué)姐、學(xué)長(zhǎng)總結(jié)的面試題??感謝學(xué)姐(針對(duì)質(zhì)量部測(cè)試開發(fā))
1.幾種常見算法看下,能夠大概描述出來(lái)算法的過程,復(fù)雜度(排序、查找等)
2.給你設(shè)定幾種場(chǎng)景,讓你解答:比如給你兩部手機(jī),讓你站在一百層樓高的地方,假設(shè)在第n層手機(jī)摔下就會(huì)摔破,問你怎樣用著兩部手機(jī)確定這個(gè)臨界層。
(場(chǎng)景測(cè)試-百度質(zhì)量部)
3.怎樣知道一個(gè)鏈表里是否有環(huán)的存在,以及確定環(huán)的位置??如何確定兩個(gè)鏈表是否有相同的部分
4.網(wǎng)絡(luò)一些知識(shí),比如http幾次握手的情況,ack等包,結(jié)束是否只能由服務(wù)器段先斷開之類的。網(wǎng)絡(luò)幾層,常見網(wǎng)絡(luò)設(shè)備屬于哪層?
在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接。
第一次握手:建立連接時(shí),客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);
第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。
5.測(cè)試幾種方法.
6.給定一個(gè)很大文件,內(nèi)存里放不下,怎樣搜索里面是否有需要的關(guān)鍵字,從百度搜索內(nèi)容,描述一下大致的過程
7.?從網(wǎng)上找找百度質(zhì)量部面試面試題目
8.?C語(yǔ)言?內(nèi)存分配機(jī)制(堆棧區(qū)別,靜態(tài)存儲(chǔ)區(qū))
9.?數(shù)組指針和指針數(shù)組有什么區(qū)別
10、海量搜索問題?找找海量搜索面試題看看
百度搜索關(guān)鍵字放在一個(gè)大文件里,該文件在內(nèi)存里裝不下,用戶可以輸入關(guān)鍵字,在文件里查找關(guān)鍵字,看關(guān)鍵字是否在該文件里,給一個(gè)解決方案。(用Hash方法)
11、搜索的原理?在百度頁(yè)面輸入關(guān)鍵字,得到搜索結(jié)果,解釋一下這個(gè)過程是什么樣的
12.深度搜索算法????????單鏈表?就地?反轉(zhuǎn)
13.Linux常見的命令看看(必考)
14、TCP與UDP的區(qū)別
15、網(wǎng)絡(luò)設(shè)備
16、socket
1.對(duì)Linux內(nèi)核有一定的了解;
2.熟悉數(shù)據(jù)庫(kù)的使用,
3.熟悉基本的網(wǎng)絡(luò)配置及路由器、交換機(jī)等網(wǎng)絡(luò)設(shè)備的配置;
4.了解TCP/IP協(xié)議
5.測(cè)試流程??有幾種方式像什么白盒?黑盒???功能測(cè)試??性能測(cè)試?單元測(cè)試等等
1.自我介紹啦?項(xiàng)目相關(guān)的
2.多準(zhǔn)備?多看看常見面試題
3.還有網(wǎng)上關(guān)于質(zhì)量部面試的題目???這些比較有針對(duì)性一些
實(shí)際遇到的面試題
一面
首先要自我介紹
1、進(jìn)程與線程的區(qū)別
一面第一個(gè)問題,自我介紹都沒介紹完說了我知道的一些,他都說沒答到點(diǎn)子上,問到底要怎么答,面試的GG讓我自己上網(wǎng)搜答案。。。
答:什么是進(jìn)程(Process):普通的解釋就是,進(jìn)程是程序的一次執(zhí)行,而什么是線程(Thread),線程可以理解為進(jìn)程中的執(zhí)行的一段程序片段。在一個(gè)多任務(wù)環(huán)境中下面的概念可以幫助我們理解兩者間的差別:
進(jìn)程間是獨(dú)立的,這表現(xiàn)在內(nèi)存空間,上下文環(huán)境;線程運(yùn)行在進(jìn)程空間內(nèi)。
一般來(lái)講(不使用特殊技術(shù))進(jìn)程是無(wú)法突破進(jìn)程邊界存取其他進(jìn)程內(nèi)的存儲(chǔ)空間;而線程由于處于進(jìn)程空間內(nèi),所以同一進(jìn)程所產(chǎn)生的線程共享同一內(nèi)存空間。
同一進(jìn)程中的兩段代碼不能夠同時(shí)執(zhí)行,除非引入線程。
線程是屬于進(jìn)程的,當(dāng)進(jìn)程退出時(shí)該進(jìn)程所產(chǎn)生的線程都會(huì)被強(qiáng)制退出并清除。
線程占用的資源要少于進(jìn)程所占用的資源。
進(jìn)程和線程都可以有優(yōu)先級(jí)。
在線程系統(tǒng)中進(jìn)程也是一個(gè)線程。可以將進(jìn)程理解為一個(gè)程序的第一個(gè)線程
多線程同步方法
1臨界區(qū):通過對(duì)多線程的串行化來(lái)訪問公共資源或一段代碼,速度快,適合控制數(shù)據(jù)訪問。
2互斥量:為協(xié)調(diào)共同對(duì)一個(gè)共享資源的單獨(dú)訪問而設(shè)計(jì)的。
3信號(hào)量:為控制一個(gè)具有有限數(shù)量用戶資源而設(shè)計(jì)。
4事件:用來(lái)通知線程有一些事件已發(fā)生,從而啟動(dòng)后繼任務(wù)的開始。
2、標(biāo)準(zhǔn)模板庫(kù)STL用過的庫(kù)函數(shù)(一面)
3、做過的有關(guān)測(cè)試的項(xiàng)目,沒有問很細(xì),測(cè)試用例是不是自己寫的,根據(jù)做的項(xiàng)目,設(shè)計(jì)怎么測(cè)試自己的項(xiàng)目
4、靜態(tài)函數(shù)庫(kù)、動(dòng)態(tài)函數(shù)庫(kù)?區(qū)別?自己做的項(xiàng)目是屬于動(dòng)態(tài)的還是靜態(tài)的
5、Linux編程怎么樣(百度貌似基本上程序都跑在linux上,這個(gè)肯定要問到)
我直接答的linux常用命令還可以,在linux環(huán)境下做過實(shí)驗(yàn),內(nèi)核不了解
算法題
大部分是告訴他思路,面試官哥哥會(huì)把問題簡(jiǎn)化,再一點(diǎn)點(diǎn)啟發(fā),一點(diǎn)點(diǎn)給問題加條件,要把自己思想解釋懂給他聽,練練口才啊~還有準(zhǔn)備好紙筆,一些代碼,不好憑空想象~
1、在棧中,找出最小值,給出push?pop?求最小值min函數(shù)(不破壞棧的原始的順序、用最小的時(shí)間)
2、矩陣中?橫排?每行的數(shù)據(jù)是從小到大的,豎排?每一列也是從小到大?給出一個(gè)數(shù)用最快的時(shí)間查找一個(gè)數(shù)是否在矩陣中(空間復(fù)雜度)
3、括號(hào)匹配?{?【?(?看左右括號(hào)是否匹配?數(shù)學(xué)規(guī)則:{【(
1)不考慮數(shù)學(xué)規(guī)則
2)考慮數(shù)學(xué)規(guī)則
最后要把第三個(gè)?跟面試GG討論完解決的思路后,把這個(gè)代碼寫一下,發(fā)給他,限時(shí)近一個(gè)小時(shí),可以用偽代碼,一開始說的,寫代碼的時(shí)候不用掛電話,后來(lái)就是說了機(jī)房不能說話,就讓我把電話掛了~
二面
二面還是先自我介紹,的第一個(gè)問題,集合數(shù)的存儲(chǔ)模式,一聽就有點(diǎn)懵了,啥是集合數(shù)??委婉的告訴她不知道什么是集合數(shù),她就說,存儲(chǔ)模式有數(shù)組等,我當(dāng)時(shí)很亂,就把我自己理解的,所有在內(nèi)存中存儲(chǔ)模式的,那些,數(shù)組、鏈表、棧、堆、常量區(qū)等等,都答了,想想真2。
之后圍繞之前做過的項(xiàng)目問的比較多,比較詳細(xì),詳細(xì)到了一些功能的實(shí)現(xiàn),遇到的問題,怎么解決的等等,根據(jù)項(xiàng)目問了數(shù)據(jù)庫(kù)的語(yǔ)句,找出數(shù)據(jù)中最大的前十個(gè),給忘了,就說了C++中的實(shí)現(xiàn)方法,還自己引申了一下,答了內(nèi)存中放的下的數(shù)據(jù)怎么處理、放不下怎么處理、找出最大的前十個(gè)怎么處理,前一萬(wàn)個(gè)怎么處理。。。
也是回答了一些測(cè)試的題,測(cè)試一個(gè)函數(shù),設(shè)計(jì)測(cè)試用例,函數(shù)功能:兩個(gè)已經(jīng)排好序的數(shù)組,合并成為一個(gè)有序數(shù)組。
做過的白盒測(cè)試?實(shí)驗(yàn)?自動(dòng)化測(cè)試?有沒有寫過腳本語(yǔ)言
問了?測(cè)試網(wǎng)絡(luò)是否連通ping命令
Linux我還是像一面那么答的,這回讓我列出了我自己熟悉的linux命令,我就說了一些,她問了一個(gè)退出vim怎么退出,就回答了,保存退出,不保存退出的命令等等。
還問了?編碼量最大的項(xiàng)目,最近半年自學(xué)的東西,自學(xué)的途徑等等。
我每次最后都要面試我的人給我一些建議,一是有些人給的建議很誠(chéng)懇,像小米,直接說基礎(chǔ)太差,要我好好學(xué)習(xí)基礎(chǔ);二是,基本上可以知道還有沒有機(jī)會(huì)接著面了~直接問有沒有戲,別人不一定會(huì)說。
面小米遇到的面試題:
1、c與c++分別是怎樣動(dòng)態(tài)分配和釋放內(nèi)存的(小米)
2、存儲(chǔ)位置的區(qū)別?棧區(qū)、堆區(qū)、全局變量、代碼區(qū)(小米)
全局變量存儲(chǔ)在全局靜態(tài)存儲(chǔ)區(qū),局部變量存在堆棧中
3、自己寫一串代碼實(shí)現(xiàn)atoi函數(shù)的功能,然后根據(jù)自己寫的代碼,寫出測(cè)試用例,再根據(jù)測(cè)試用例完善些的代碼(小米)
之前面小米的一個(gè)經(jīng)驗(yàn):不會(huì)的千萬(wàn)不要說你會(huì),我提了下C#,面試官直接問我C#跟C++的區(qū)別,勉強(qiáng)說了一些,說著說著,說了一底層接口這個(gè)名詞,面試官又問我底層接口有哪些,我當(dāng)時(shí)想死的心都有了,于是,自己不熟悉的,在他還沒具體細(xì)問問題的時(shí)候先告訴他會(huì)什么,不會(huì)什么,例如linux,我直接答的linux常用命令還可以,在linux環(huán)境下做過實(shí)驗(yàn),內(nèi)核不了解,就不會(huì)死很慘。
還有,簡(jiǎn)歷注意下,之前朋友簡(jiǎn)歷上寫的?學(xué)過的課程中?有一個(gè)linux內(nèi)核?,這課確實(shí)是學(xué)了,百度的面試官問了一個(gè)問題?你比較熟悉哪一個(gè)linux內(nèi)核命令,我們來(lái)深入探討一下啊,這個(gè)就不好答了~
總結(jié)
以上是生活随笔為你收集整理的linux socket 面试题,面试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql cluster 查看数据库表
- 下一篇: css英文左右对齐,中文英文左右padd