学姐百度实习面经(轻松拿offer)
本系列歷史文章:
學姐,來挑戰(zhàn)字節(jié)最牛部門
最強阿里巴巴歷年經(jīng)典面試題匯總:C++研發(fā)崗
關于我的那些面經(jīng)——百度后端(附答案)
《關于我的那些面經(jīng)》滴滴Java崗(附答案)
朋友面神策數(shù)據(jù)庫,第五個問題不會,直接再見
美女學姐面了美團阿里京東,這些經(jīng)驗實在太真實了
學姐騰訊產(chǎn)品面經(jīng)
學姐總結(jié)奇安信18k常問面試題
?這個系列計劃收集幾百份朋友和讀者的面經(jīng),作者合集方便查看,各位有面經(jīng)屯著可以聯(lián)系我哦
?
1、測試環(huán)境搭建過程
2、? 驗證環(huán)境部署是否成功時 跑測試用例 接口是什么樣的?(服務對外提供的調(diào)用接口)
3、? 數(shù)據(jù)庫 表 有個字段 name字段 name=liuguoge 唯一標識id=3 修改name=guogeliu
update user set name=guogeliu where id=3;
4、寫鏈表翻轉(zhuǎn)(說思路,代碼中每一行的作用)
public ListNode ReverseList(ListNode head) {
?????? //當前節(jié)點是head,pre為當前節(jié)點的前一節(jié)點,next為當前節(jié)點的下一節(jié)點
??????? if(head==null)return null;
??????? ListNode pre = null;
??????? ListNode next = null;
??????? while(head!=null){
??????????? //先用next保存head的下一個節(jié)點的信息
??????????? next = head.next;
??????????? //保存完next,就可以讓head從指向next變成指向pre了
??????????? head.next = pre;
??????????? //讓pre,head,next依次向后移動一個節(jié)點,繼續(xù)下一次的指針反轉(zhuǎn)
??????????? pre = head;
??????????? head = next;
??????? }
??????? //head為null,反轉(zhuǎn)完畢,pre就是反轉(zhuǎn)后鏈表的第一個節(jié)點
??????? return pre;
??? }
5、 Scp和wget區(qū)別
curl是libcurl這個庫支持的,wget是一個純粹的命令行命令。
curl支持更多的協(xié)議。
curl 支持FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE,
Wget 支持HTTP, HTTPS and FTP.
curl 默認支持HTTP1.1(也支持1.0),而wget僅僅支持HTTP1.0規(guī)范。
4.curl在指定要下載的鏈接時能夠支持URL的序列或集合,而wget則不能這樣;
5.wget支持遞歸下載,而curl則沒有這個功能。
7、? 重載與重寫區(qū)別
定義區(qū)別:
①重載是指不同的函數(shù)使用相同的函數(shù)名,但是函數(shù)的參數(shù)個數(shù)或類型不同。調(diào)用的時候根據(jù)函數(shù)的參數(shù)來區(qū)別不同的函數(shù)。
②覆蓋(也叫重寫)是指在派生類中重新對基類中的虛函數(shù)重新實現(xiàn)。即函數(shù)名和參數(shù)都一樣,只是函數(shù)的實現(xiàn)體不一樣。
類的關系區(qū)別
覆蓋是子類和父類之間的關系,垂直關系;重載是同一個類中方法之間的關系,水平關系。
3.產(chǎn)生方法區(qū)別
覆蓋只能由一個方法或只能由一對方法產(chǎn)生關系;重載是多個方法之間的關系。
4.參數(shù)列表要求區(qū)別
覆蓋要求參數(shù)列表相同;重載要求參數(shù)列表不同。
5.調(diào)用方法區(qū)別
覆蓋關系中,調(diào)用方法體是根據(jù)對象的類型來決定;而重載關系是根據(jù)調(diào)用時的實參表與形參表來選擇方法體的。
?
1、介紹實習經(jīng)歷
2、? 測試環(huán)境的檢查(接口測試)
3、? 寫代碼:奇數(shù)在前,偶數(shù)在后
private static void fun(int[] arr) {
??? if (arr.length == 0)return;
??? int front = 0,end = arr.length-1;//設置兩個指針,一個指向頭部,一個指向尾部
while (front < end){
?????? //從前往后找偶數(shù)
??????? while (front < arr.length && arr[front]%2 == 1) front++;
????????????? //從后往前找奇數(shù)
??????? while (end >= 0 && arr[end]%2 == 0)end--;
??????? //將前面的偶數(shù)與后面奇數(shù)交換位置
if (front < end){
??????????? int temp = arr[front];
??????????? arr[front] = arr[end];
??????????? arr[end] = temp;
??????? }
??? }
}
?
?
如何判斷bug前后端?
前端的問題:
在用戶輸入數(shù)據(jù)后,發(fā)送的請求沒有帶數(shù)據(jù)或者數(shù)據(jù)錯誤。
后臺已經(jīng)傳回了數(shù)據(jù),但在前端顯示不出來。
后端的問題:
?????? 接受請求后,存儲/修改錯誤(查看數(shù)據(jù)庫)
?????? 返回數(shù)據(jù)錯誤
?
抓包工具來進行分析
通過請求與響應來判斷。
1.請求接口url是否正確
如果請求的接口url錯誤,為前端的bug
2.傳參是否正確
如果傳參不正確,為前端的bug
3請求接口url和傳參都正確,查看響應是否正確
如果響應內(nèi)容不正確,為后端bug
4,后端bug需要查看 服務器的log日志
?
?
3.一個真實的測試場景,問如何排查問題
4.黑盒測試和白盒測試和灰盒測試區(qū)別以及都有什么方法
黑盒:只關注輸出的正確性
白盒:了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進行測試。
灰盒測試,介于二者之間的,關注輸出的正確性,同時也關注內(nèi)部表現(xiàn)。
?
方法:
黑盒:等價類劃分、邊值分析、因—果圖、錯誤推測等
白盒:代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基本路徑測試法、路徑覆蓋
?
?
三次握手
第一次:發(fā)送請求
第二次:告訴對方受到了請求并同意
第三次:告訴對方收到了你的同意,可以開始了。
?
為什么連接的時候是三次握手,關閉的時候卻是四次握手?
?
因為當Server端收到Client端的SYN連接請求報文后,可以直接發(fā)送SYN+ACK報文。其中ACK報文是用來應答的,SYN報文是用來同步的。
但是關閉連接時,當Server端收到FIN報文時,很可能并不會立即關閉SOCKET,所以只能先回復一個ACK報文,告訴Client端,"你發(fā)的FIN報文我收到了"。只有等到我Server端所有的報文都發(fā)送完了,我才能發(fā)送FIN報文,因此不能一起發(fā)送。故需要四步握手。
?
tcp為什么能穩(wěn)定傳輸
[1] 確認和重傳機制
建立連接時三次握手同步雙方的“序列號 + 確認號 + 窗口大小信息”,是確認重傳的基礎,
傳輸過程中,如果Checksum校驗失敗、丟包或延時,發(fā)送端重傳。
[2] 數(shù)據(jù)排序
TCP有專門的序列號SN字段,可提供數(shù)據(jù)re-order
[3] 流量控制
窗口和計時器的使用。TCP窗口中會指明雙方能夠發(fā)送接收的最大數(shù)據(jù)量
[4] 擁塞控制
TCP的擁塞控制由4個核心算法組成。
“慢啟動”“擁塞避免”“快速重傳 ”“快速恢復”
?
HTTP狀態(tài)碼分別表示啥
信息響應(100–199)
成功響應(200–299)
重定向(300–399)
客戶端錯誤(400–499)
服務器錯誤 (500–599)
?
總結(jié)
以上是生活随笔為你收集整理的学姐百度实习面经(轻松拿offer)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《以撒的结合胎衣+》新人物亚巴顿玩法解说
- 下一篇: leetcode1299. 将每个元素替