《Java 面試指北》來啦!這是我這兩年利用業餘時間完成的 JavaGuide 開源版的補充。
【一面】全程55min
- 先自我介紹一下吧
- Java1.8 的新特性?你說到了 Lambda 表示式,你說說它的優缺點?
- Java 8 的 Stream 流用過嗎?有什麼特點?
- 執行緒池建立的方式有哪些?
ThreadPoolExecuter
的引數有哪些? ArrayList
和LinkedList
的區別在哪裡?Queue
與Deque
的區別?HashMap
和TreeMap
區別?- 假設有一個10W的資料請求,你會有什麼方法來實現這些資料的增刪改查?
- 資料庫的三大正規化是什麼?
- MyISAM 和 InnoDB 的區別?
- MySQL主鍵索引和普通索引的區別是什麼?誰的效能更好一些?如果是在10W級的資料下,誰的效能更好些?
- 介紹一下聯合索引吧?
- 以(a,b,c)為例,在什麼情況下,單查 b 也能夠命中聯合索引?
- 演算法題:手寫程式碼實現單向連結串列的結構體,完成增刪改查。
- 反問環節:你有什麼問題想問我的不?
面試總結:感覺問題的題目不是太難,只怪自己太菜,基礎沒掌握好,面試官人不錯,要是有人撈,我還想再來一次!第二天流程已結束。。
好傢伙,不知道發生了什麼,我又開始了新的流程,這難道就是傳說中的二戰!!!還是騰訊雲。
【一面】全程46min
- 自我介紹,
- 接著就是來倆演算法題:題1:統計一串字元中,重疊字元出現的次數。(如AAABBBCC,輸出A_3_B_3_C_2)題2:求兩個字元的最長公共子串
- 你用過哪些資料庫?MySQL資料庫的儲存引擎瞭解過哪些?這些儲存引擎的特點是什麼?
- MySQL 預設是什麼儲存引擎,為啥用這個?
- InnoDB和MyISAM的有啥區別?和MEMORY呢?
- InnoDB為啥索引的資料結果要用B+樹?
- 為啥不用Hash索引?Hash索引查詢的時候不是更快嗎?
- 網路程式設計瞭解過嗎?說說如何建立一個Socket連線
- C++的基本資料結構瞭解過嗎?
- 反問環節:你有什麼問題想問我的不?
【二面】全程43min
今天上午突然給我發郵件讓我下午二面,這霸道總裁的通知風格。。。
- 看你有個比賽,你這個比賽裡面做的什麼?(15min)
- 你還寫過哪些應用程式,說說看?資料儲存用的什麼,web伺服器用的什麼?
- C++瞭解過嗎?
- 軟體設計師什麼時候考的??
- 寫過多程式和多程式嗎?都在什麼情況下用過?遇到了什麼困難不?
- 有沒有 Linux 下的程式設計經驗?
- Linux常用命令瞭解哪些?
- 網路程式設計用過嗎?Sokect?
- Linux中的epoll和select這些多路複用瞭解過嗎?
- 說說五層網路模型吧,說說對應的協議吧
- 抓過網路包嗎?
- 如果要設計一個快速插入和查詢的資料結構,你會用什麼結構?Hash衝突的解決方法?
- 有一個容量為N的陣列,裡面存放了N個數,每個數的取值範圍是1~N,有沒有什麼快速辦法判斷是否有重複元素,哪個元素重複了?空間複雜度要求是O(1)
- 求二叉樹深度的演算法呢?說說看?時間和空間儘可能的小
- 設計模式瞭解過嗎?瞭解一下
- UML類圖理解的怎麼樣?畫個類圖嗎?
- 雲端計算的知識瞭解嗎?容器用過嗎?大資料套件瞭解過嗎?ELK瞭解過嗎?看過開源架構系統的程式碼嗎?(這全是知識盲區啊。。。)
- 分散式儲存瞭解過嗎?
- 一個程式的棧大小是多少知道嗎?開啟檔案的上限是多少?
- 你覺得你擅長做什麼業務?
- 反問環節
總結:整個過程主動補充有點少,導致場面數次陷入安靜的尷尬場面,最長的一次甚至長達30多秒。以後的面試還是要多多擴充套件自己講的內容。
文|牛客網:牛客71576213號
參考答案
上面的絕大部分問題,你都可以在下面的這幾篇文章中找到答案。