一整套美团面经(给对象超用心整理的)
做測試的,我整理的真的很用心了,能找的新鮮面經都找了。
一面
1. 自我介紹
2. 面向對象的三種特性 集成用到了哪些特性 多態的具體使用場景 設計模式中的多態體現(手撕)
封裝:將屬性私有化;封裝的意義:保護或者防止代碼(數據)被我們無意中破壞。
保護成員屬性,不讓類以外的程序直接訪問和修改;隱藏方法細節
繼承:主要實現重用代碼,節省開發時間。
多態的定義:不同類的對象對同一消息做出響應。即同一消息可以根據發送對象的不同而采用多種不同的行為方式。
多態實現“
?? 酒 a = 劍南春
????酒 b = 五糧液
????酒 c = 酒鬼酒
策略模式:策略模式定義了一系列算法,并將每一個算法封裝起來,而且使它們還可以相互替換。
3. java基礎 堆和棧 String和StringBuffer 區別 在堆中怎么分配 有幾個對象
棧:主要存放了編譯器可知的各種數據類型(boolean、byte、char、short、int、float、long、double)、對象引用。
堆:存對象
String不可變StringBuffer可變
創建 1 或 2 個對象。
如果池中已存在字符串常量“abc”,則只會在堆空間創建一個字符串常量“abc”。
如果池中沒有字符串常量“abc”,那么它將首先在池中創建,然后在堆空間中創建,因此將創建總共 2 個字符串對象。
4. java集合 hashmap 手撕實現put 和get方法
計算該去的位置:重點就是取個模
put大概思路要知道
Get:先計算出來位置,然后就去對應的鏈表找
5. java gc回收三種算法
標記-清除
從根對象出發,進行標記,也就是將這些根對象能夠引用到的那些對象都作上標記。然后清除。
引用計數
有人引用就+1,釋放就-1,到0就銷毀。
GC 復制算法
最原始的做法就是將內存一分為二,每次只使用其他一半,當要 GC 時就將使用的一半中的活動對象復制到另外一半,然后清理這一半中的所有對象,直接使用另外一半即可,重復這個操作。
6. 網絡基礎 tcp三次握手
第一次:發送請求
第二次:告訴對方受到了請求并同意
第三次:告訴對方收到了你的同意,可以開始了。
7. 數據庫查詢 更新 刪除語句 inner join left join right join區別
?
總結:內連接:只取兩邊能匹配的。
左連接:左邊存在,右邊不存在的也取
右連接和左連接相反
8. 索引 使用場景
加速有序表的查找速度
9. 項目中的難點
10. 為什么選擇測試開發
11. 面試官介紹部門以及工作
12. 3-5年職業規劃
一面
1. 自我介紹 項目
2. 算法 字符串匹配 截取 手撕 寫測試用例 測試用例的設計方法
3. Java 多線程實現方式 runnable thread 區別 線程的幾種狀態? 狀態切換
優點:編寫簡單,如果需要訪問當前線程直接使用this即可獲得當前線程.
缺點:因為線程類已經繼承了Thread類,不能再繼承其他的父類
優點:線程類只實現了Runable接口,還可以繼承其他的類.
缺點:編程稍微復雜,需要訪問當前線程,必須使用Thread.currentThread()方法
4. 數據庫 delete drop truncate區別
DELETE是每次刪除一行,并且將該行的刪除操作記錄在日志中保存以便進行回滾操作。
TRUNCATE TABLE刪除所有的數據,不把刪除操作記錄記入日志,是不能恢復的。
DELETE操作不會減少表或索引所占用的空間。
當表被TRUNCATE 后,這個表和索引所占用的空間會恢復到初始大小,
drop語句將表所占用的空間全釋放掉。
如果想刪除部分數據用delete;
如果想刪除表用drop;
如果想保留表而將所有數據刪除用truncate;
5. 索引 使用場景 數據庫查詢優化(有幾億條記錄的表優化,分庫,分表,按什么標準做劃分標準)
6. 唯一索引和主鍵索引的區別
主鍵索引一定是唯一索引,唯一索引不一定是主鍵索引,
唯一索引可以為空,主鍵索引不能為空
7. HTTP和HTTPs的區別 HTTPs原理 SSL 證書 對稱密鑰(會話密鑰) 非對稱密鑰
http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議
http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。
8. HTTP請求頭部字段有哪些
9. HTTP 狀態碼 301和302? 區別
301和302狀態碼都表示重定向,就是說瀏覽器在拿到服務器返回的這個狀態碼后會自動跳轉到一個新的URL地址。
301表示舊地址A的資源已經被永久地移除了(這個資源不可訪問了),;
302表示舊地址A的資源還在(仍然可以訪問)
10. Web請求的過程
11. ping ICMP協議 ping 的過程 ??放棄
12. TCP和UDP的應用場景 QQ聊天軟件使用的協議是什么
Tcp可靠傳輸:比如傳文件
Udp不可靠:比如qq聊天有時候感嘆號
13. Linux命令 | 管道命令
14. 學習方法
二面
自我介紹
為啥要做測開
測試方法
測試流程
代碼題反轉字符串
你會
之前測試遇到過什么亮點
找到的bug開發不承認咋辦
學一門語言需要多久
有啥問題要問
三面
問了項目,項目是做什么的,用戶是誰,你在里面扮演了什么角色
對測試開發的理解
如果測出了一個bug,去給開發說,開發說不是bug,咋地整
http請求頭內容
狀態碼405
405表示請求的方式不對,請求的方式有get、post、head、put……常用的為post和get
put和post區別
冪等性概念:冪等通俗來說是指不管進行多少次重復操作,都是實現相同的結果。
GET,PUT,DELETE都是冪等操作,而POST不是,以下進行分析:
首先GET請求很好理解,對資源做查詢多次,此實現的結果都是一樣的。
PUT請求的冪等性可以這樣理解,將A修改為B,它第一次請求值變為了B,再進行多次此操作,最終的結果還是B,與一次執行的結果是一樣的,所以PUT是冪等操作。
同理可以理解DELETE操作,第一次將資源刪除后,后面多次進行此刪除請求,最終結果是一樣的,將資源刪除掉了。
POST不是冪等操作,因為一次請求添加一份新資源,二次請求則添加了兩份新資源,多次請求會產生不同的結果,因此POST不是冪等操作。
數據庫分頁,limit 3 5的意思
從第三條往后取10條
tomcat配置
手撕,給一個字符串“王先生手機180住在A座302號”,把不同類型的連續字符分別存儲,比如a1=王先生手機,a2=180等等,遍歷這個存儲結構可以得到原字符串
按格分割成一段一段的,存到不同的屬性里
一面
1、自我介紹2、手撕代碼:給一個整型數組,將正數放在左邊,負數放在右邊;
和快排類似,復習一下
3、剛才寫的代碼時間復雜度、空間復雜度都是多少?
4、如何優化剛才寫的代碼
這就是最優了優化不了了,笨蛋是開兩個新數組,負的放第一個數組,正的放第二個數組。最后再放回開始的數組里,這是浪費空間的
5、站在一個測試人員的角度,如何測試剛才所寫的代碼
6、三次握手
7、integer和int的區別
Integer是int的包裝類,int則是java的一種基本數據類型
Integer變量必須實例化后才能使用,而int變量不需要
Integer實際是對象的引用,當new一個Integer時,實際上是生成一個指針指向此對象;而int則是直接存儲數據值
Integer的默認值是null,int的默認值是0
8、static關鍵字
修飾的方法和屬性屬于類本身,所有對象共享
9、項目難點,以及怎么解決的
10、簡歷上寫的項目怎么做的測試;
11、你認為測試開發是做什么的?
12、問實習相關的工作
13、你有什么想問我的?
一二三四面
1.自我介紹
2.講項目,講項目流程
3.項目數據和代碼怎么分離的,怎么驅動的(說的不好,感覺沒get到點)
3.http用了哪些方法,post,put的區別,put,get的區別
4.https區別,https為什么是安全的,知道哪些加密算法(不懂了,說知道SSL層原理,講了一下)
5.fiddler怎么抓https包的
還有好多,忘記了反正問的很詳細
二面:
1.自我介紹
2.項目講了一下,很詳細的聊了一下項目,項目人員組成,你有沒有覺得哪一環節可以優化的
3.jenkins怎么集成的,怎么觸發的
4.為什么選ROBOT Framework框架,優缺點是什么
5.接口自動化測試接口輸入參數填錯時候是什么情況,怎么處理的(這塊答得不好不是很懂,瞎扯了一會)
6.寫代碼:目錄A,遍歷這個文件夾,找出所有.txt文件,異常情況考慮
7.寫代碼:abcd反轉成dcba,能寫多少種方法,寫了三種,姐姐讓再想想,想不出來了,說可以入棧出棧的方式
8.二分查找思想說一下,代碼寫一下,有沒有異常情況的處理
9.寫代碼:統計字符串abcdaa123每個字符出現的次數
10.python常用哪些類庫
11.python常用數據結構講一下,特點講一下
12.linux? 查看所有java的進程什么語句,? ps -ef | grep 'java',寫了不對,改了兩遍才寫對了,問|是什么,說了管道
查看日志怎么查看的(不會)
查看兩臺服務器是否連通什么語句,說了ping,還知不知道其他的,不懂了
服務器A上的文件拷貝到B,什么語句(不懂,以前用過忘記了,哭)
同一個服務器上文件夾A的拷貝到B? cp
13.數據庫三種刪除關鍵字說一下? delete,truncate,drop講了一下,此時嗓子已啞~~
14.http請求包包含哪些內容,說的不好只記得一些
15.http1.0 http1.1啥區別,講了一下,順便講了長連接和短連接的區別
16.一個URL包含哪些內容,說了協議,域名或者IP,文件名路徑名
17.cookies session 區別說一下? 你項目里怎么存cookies的,告訴他沒用過,自己做過token驗證的
18.對測試框架有沒有優化的,跟他說發現過問題但是沒有優化開源的框架,但是優化過自己的代碼,說了下函數式編程
19.實習中發現什么有意義的bug沒有
20.用fiddler干嘛的,說了過濾包,抓手機包
21.瀏覽器兼容性測試做過哪些,哪些瀏覽器,有什么特點,市面上瀏覽器列舉了一下,特點就不懂了,說了一下發現過的瀏覽器兼容性測試的bug,問怎么解決的,說不太懂底層原理
22.微信登錄頁面怎么測試,從哪些方面測試,具體說下功能測試
23.美團一個提交訂單的頁面,怎么測試的
三面:
1.自我介紹,項目,項目人員組成
2.python用過哪些庫
3.python中is 和==什么區別
4.函數重載是什么,代碼寫一下(說的好像不準確,代碼沒寫出來,換了寫初始化的)
5.python 初始化一個類代碼寫一下
6.python寫一下99乘法表
7.寫完了對代碼設計測試用例(好難,講的不好)
8.還有一個代碼題忘記了
9.MYSQL題目,找出每個科目的平均分,平均分大于90的科目,這個地方寫的很差,在面試官不斷指導下改正,有段時間沒用了,寫的不行,哭
10.sql注入什么樣子,舉個例子,寫了一種代碼,問還知道其他的不,不知道了,跟他說了一下sql注入原因
11.平時怎么學習的 跟他說書和博客,看誰的博客,說了阮一峰,廖雪峰
12.最近看哪些書,大學學最好的課程是啥,說了計算機網絡,這本書講什么的,跟他說了第一章到第十章每章講的什么
從這本書學到什么了,說了協議
13.http狀態碼說一下,從100說到4XX被停了,問 你咋還記得怎么清楚,是不是背書了....
委屈,記得清楚也不行了,告訴他項目常用, 我就多了解了很多(沒錯其實我就是背書了)
14.平時怎么學的PYTHON,說了python基礎教程,博客,傳智播客的視頻,選擇性學習
15.你覺得怎么可以減小開發中出現的錯誤(答得不好,純胡扯)
16.美團常用嗎,蠢了說不太常用,常用大眾點評,哭戚戚
用大眾點評干嘛的,答了各種吃喝玩樂啊~
17.職業規劃說一下,說了五年的,說你想的倒是很長遠啊,那你覺得做leader需要什么
18.扯了會校園生活
19.有什么要問的
HR面:
1.自我介紹
2.大學經驗
3.概括自己的優缺點,講了一下
4.天賦和努力什么重要,過程和結果什么重要
5.講了下大學經驗,各種社團活動
6.你怎么平衡活動和學習
7.你有對做過等活動review嗎
8.了解了基本情況
總結
以上是生活随笔為你收集整理的一整套美团面经(给对象超用心整理的)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 「跳一跳」两年后,广告“杀死”游戏小程序
- 下一篇: 决策理论与方法——决策概念与分类