- 從調度、并發性、擁有的資源和系統開銷四個方面回答的,
6、HTTP有沒有狀態,我說無狀態,怎么解決HTTP無狀態怎么解決HTTP無狀態其實就是怎么進行會話跟蹤,有四種方法:URL重寫、隱藏表單域、Cookie、Session,
7、Java IO,NIO,Java中有沒有實作異步IO
- Java IO實作的是同步阻塞,它是怎么實作同步阻塞的,我拿了read()方法舉例來講的,NIO實作的是同步非阻塞,我詳細講了一下Selector中的select()方法輪詢說明它是如何實作多路復用IO的,然后對比了一下他們的效率,面試官可能看我對這一塊比較了解,又繼續問我Java中有沒有實作異步IO,我感覺好像沒有,但面試官說有,讓我想想,其實這里我并不清楚啦,所以我就對面試官講了一下我對Unix中異步IO模型的理解,然后說至于Java里面有沒有我真的不太清楚,(他居然笑了!說你理解是對的,Java里面有沒有不重要!哈哈)
8、前端會不會,Ajax是什么,Ajax實作原理
- 前端我只是會用一些js而已,用過jquery框架,問我Ajax全稱是啥,我猜是異步的js和xml,Ajax實作原理其實我也不懂,我就只簡單講了一下它通過XMLHttpRequest物件進行異步查詢,Ajax引擎在客戶端運行,減少了服務器作業量,
9、讓我設計一個執行緒池
- 因為我簡歷中有寫到我對多執行緒、并發這一塊理解比較好,所以他老問這方面的題,這個問題因為我之前看過ThreadPoolExecutor的源代碼,所以我就仿照那個類的設計思路來想的,詳細講了一下核心池、創建執行緒可以用工廠方法模式來進行設計、執行緒池狀態、阻塞佇列、拒絕策略這幾個方面,設計的還算比較周全,
10、講幾個設計模式,哪些地方用到了,為什么要用
- 單例模式,jdk中的getRuntime();工廠方法模式,ThreadPoolExcutor用到ThreadFactory;觀察者模式:java.util包下面的Observable和Observer,最后主要講了一下工廠方法模式的使用場景,
11、Mysql優化、索引的實作
- 我從資料庫設計優化和查詢優化兩方面講的,索引B+樹實作,InnoDB和MyISAM主鍵索引的實作區別,一個聚集一個非聚集,
12、事務的隔離級別
- 四種隔離級別,可能會出現哪些例外,mysql中默認級別,
13、有沒有用過Hibernate、mybatis、git
14、Linux
- 我說這個本科學過,但是很久沒用,命令忘光了,他說沒事,考你幾個簡單的:cd、ls、dir(真的是簡單的)
15、演算法題
-
從10萬個數中找最小的10個,時間復雜度分析(最大堆,考慮記憶體)
-
從一個有正有負陣列中找連續子陣列的最大和,時間復雜度分析(動態規劃)
-
滿二叉樹第i層有多少個節點,n層的滿二叉樹共有多少個節點
終于到我提問環節了
1、你們是什么部門(他說是核心部門,大資料研發)
2、我對高并發和負載均衡挺有興趣的,但是我平時在學校也沒有這個環境讓我在這方面有所體驗,那你建議我目前可以怎么學呢(他說這確實是不太好學,只能看些理論和別人的博客,以后作業中才能慢慢學)
3、中間件具體是做什么的,是解決高并發和負載均衡嗎(他說差不多是的,然后他說我們這個部門不是中間件,是大資料部門啊,我說恩我知道)
最后沒啥問題了,他讓我保持電話暢通,

美團技術三面25分鐘
面試官說是他是另外一個部門的,需要進行交叉面試,
1、MySql優化
2、說下專案做了些什么,架構之類的
3、在collabedit上在線寫代碼
- 題目很簡單是編程之美上的原題,一個有序的整數陣列,輸出兩個數,使它們的和為某個給定的值,之前做過很快寫好,然后給他講思路,他繼續問如果陣列無序怎么辦,先排序,
4、兩個檔案,每個檔案中都有若干個url,找出兩個檔案中相同的url(用HashMap)
- 這一面挺簡單的,只是增加之前面試沒有過的在線寫代碼環節,collabedit后來我才了解,像facebook一些互聯網公司遠程面試都會用這個在線編輯器寫代碼,就是文本檔案寫,沒有提示,不能編譯運行,跟白板寫一樣,平時練練手就好,
美團技術HR四面30分鐘
三面面試官說他那就是終面,說我過了等hr聯系我,萬萬沒想到半小時后的hr面居然也是技術,
1、自我介紹,都四面了還自我介紹?!我還以為是單純的hr面,所以介紹的都是我的性格和生活方面的,結果并不是,
2、問專案,問的特別特別細,技術細節,還有遇到什么問題,怎么解決的,做專案有沒有人帶,怎么跟別人溝通的,
3、資料庫優化,如果資料庫一個表特別大怎么辦 資料庫優化我就講了之前講過很多遍的點,他問一個表特別大怎么辦:大表分小表,怎么實作:使用磁區表
4、問研究生的科研題目,為什么選這個題,看了一些什么論文(細到問我那些論文是發表在什么期刊上的,作者是哪所學校的),為什么要選這個演算法,怎么優化的,實驗結果怎么跟別人作對比的,為什么比別人的演算法好
5、確定上班時間,這一面確實讓我感到有壓迫感,專案是本科做的,挺久了,一些技術細節上也沒太總結,所以問細了我只能連想帶編,嘿嘿,科研方面倒還好,上個學期都在弄這個,一些演算法的實作和改進、對比都還記得比較清楚,回答的挺流暢的,可能這真的就是技術型的hr面吧,

總結
最后
看完美團、位元組、騰訊這三家的面試問題,是不是感覺問的特別多,可能咱們又得開啟面試造火箭、作業擰螺絲的模式去準備下一次的面試了,
開篇有提及我可是足足背下了1000道題目,多少還是有點用的呢,我看了下,上面這些問題大部分都能從我背的題里找到的,所以今天給大家分享一下互聯網工程師必備的面試1000題,
注意:不論是我說的互聯網面試1000題,還是后面提及的演算法與資料結構、設計模式以及更多的Java學習筆記等,皆可分享給各位朋友,直接戳這里即可免費下載

互聯網工程師必備的面試1000題
而且從上面三家來看,演算法與資料結構是必備不可少的呀,因此我建議大家可以去刷刷這本左程云大佬著作的《程式員代碼面試指南 IT名企演算法與資料結構題目最優解》,里面近200道真實出現過的經典代碼面試題,
04888/java-p7)**
[外鏈圖片轉存中…(img-xqMe49Il-1628437113656)]
互聯網工程師必備的面試1000題
而且從上面三家來看,演算法與資料結構是必備不可少的呀,因此我建議大家可以去刷刷這本左程云大佬著作的《程式員代碼面試指南 IT名企演算法與資料結構題目最優解》,里面近200道真實出現過的經典代碼面試題,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/293168.html
標籤:java
上一篇:LeetCode 169. 多數元素【c++/java詳細題解】
下一篇:漫畫:什么是 “建造者模式” ?
