背景;本碩985,女,研一頭條實習三個月,有比賽(主要是網絡模型+模型融合)類。
投的JAVA開發。
項目基本都是講的實習的項目,比賽很少問到。
網易/愛奇藝掛(面經在最后)
有且僅有阿里/騰訊/攜程/亞馬遜
阿里一面
1.enum構造方法 是公共還是私有的。
2.lombok底層實現 怎么實現注解。
3.hashtable/hashmap/concurrenthashmap ,最后還問了concurrenthashmap 1.8底層實現是什么?我說紅黑樹,他說了解嗎?然后問了一下歸並排序。
3.Spring流程,我說了注解怎么導入compenent/compentscan/import,解決bean重復,然后說了Spring初始化很慢
4.單元測試怎么實現
我說mock,他說怎么看結果一致,我說斷言。然后他又說一個類很多方法,測應該分開測,還是可以一起測。我說沒有耦合,一起測,測通了就行吧。他叫我分開測試。
5.jvm分區
我說了新生代/老年代為什么要這么分?新生代用復制,老年代用標記-清理/標記-整理。
又為什么是8:1:1的思想?所以收集器搭配使用。但是現在g1收集器已經不一樣了。沒有區別對待新/老
6.設計模式的基本原則
我不會,我講了三個工廠的區別,優缺點。
7.紅黑樹和二叉搜索樹
他想問為什么concurrenthashmap底層為什么要紅黑樹。
8.數據庫分頁查詢。要我從10000數據里面,每頁查10個出來。
我不會 我說limit肯定要用,但是分頁不清楚
9.數據庫索引
從有a,b,c,d,e,f7個字段的地方查詢出a=x and b=y and c=z
后來查了好想要組合查詢吧
10.linkedlist他叫我多看看
阿里二面 沒有撕代碼,整個過程快問快答。25分鍾。喜歡跳躍很大。不問實習。懟基礎。只問一個點,一定要自己擴展,不然就知道下一個問題了。
1.NIO,阻塞非阻塞,同步異步
2.hashMap怎么線程不安全,把hashMap/hashtable/concurrenthashmap講了一遍。
3.數據庫底層實現。(B+樹)他本來問的引擎,后來也沒問了。還問了最左前綴
4.本來說jvm內存模型。堆棧。
5.線程和進程,谷歌瀏覽區打開不同的窗口是進程還是線程?
6.你Spring創建的單例還是多例?這個看需求吧
7.你的職業規划
8.你的畢業論文寫啥
阿里二面加面
兩道題,手寫代碼
二分查找。我加了流式編程和函數式編程
實現一個map,可以根據key 找value,也可以根據value找key,如果有多個key,返回這個key組成的list
阿里Hr 30min,女,比較和藹
項目?主要體現項目怎么解決問題/思考問題
我平時自己會總結,阿里項目會做復盤-》價值觀匹配
有沒有男朋友
還考慮上家公司嗎,實習感受
你為什么要來阿里呢
你父母支持你來杭州嗎
阿里交叉面45min,不撕代碼
jvm怎么看出現死鎖了嗎?
jvm常用的指令
Linux —help。查負載均衡
Hashmap
項目
最難過的事情
索引,索引怎么優化
線程池
樂觀鎖
寫sql語句,口述就行
語言差異怎么辦?
你論文發了嗎?研究生做的什么方向?
阿里分到的杭州菜鳥部門,面試官很好,挽留了很久,但是人生方向不一致。希望菜鳥早日上市,面試官早日發財!!!
騰訊一面 1h寫代碼+半小時對話 前面是打字面試,我第一次見識到打字面試!!!!!
代碼題1:大文件排序,我馬上說了思想他又給我換題;感覺以后如果有思路建議藏2分鍾再答,沒有思考的過程他會懷疑你見過,然后換題?
代碼題2:交換兩數組的元素,使得兩數組和之差最小?
我想的是把兩數組揉在一起排序,然后從頭分發,但是這個只適合出現負數的情況
負數沒做出來很遺憾
問題:
項目,重思路解決問題的能力
spark shuffle + groupbykey/reducebykey
Http1.0/1.1/2/3
壓力面
你領導對你有意見,你怎么辦?
其他:
語言差異怎么辦?
騰訊二面
30分鍾,視頻,不寫代碼
項目
你想做機器學習還是說工程,他們那邊這兩個沒有嚴格的區別,你也談了為什么現在要這
分開,因為能落地還是很重要的。我說看需求吧
問了一下他們的語言,python/C++
完
騰訊效率高,兩面之間只隔1天;阿里前前后后40多天,然后會HR面完突然又加面,面試體驗並不好
4.23 騰訊HR
項目
1.家里人支持來北京嗎
2.女生很多后來轉產品,你是怎么想的
3.你怎么評價你的上司
4.你的興趣愛好
5.你男朋友哪個公司?外企和國廠的區別,有了解嗎
6.她說:騰訊轉正率低!!!!!!
7.最困難的事情
8.用三個詞評價你自己
騰訊分到的北京地圖,面試官人很好,最后拒絕了也挽留了很久。
4.23
攜程現場面 只有一面
1.項目
2.線程池
3.arraylist刪除奇數位置的元素,思路
4.反轉鏈表,手寫
5.反轉鏈表每K組
6.兩個數組,找出共同的元素。分別給了時間復制度o(n)+空間復雜度o(N),他不要輔助空間,又給優化成了時間復雜度o(nlogn)
7.兩個數組,每個數組出一個元素,求和,求得到的和最小的K,需要優化笛卡爾積
8.Arrays.sort(list)底層是什么,快排和歸並的區別?
上海部門,感覺不錯,攜程沒有社招,全是應屆生補充新鮮血液,感覺后期如果能分到股票期權也很好。
4.23
1.鏈表的中間結點
2.一個人怎么買票最划算?給出日票/周票/月票價格。給出一個人出行的日期
3.給一個四個數的數組,返回合法的時間。
5.15
amazon
1.項目
2.用一個數組實現最大棧
項目
1.全排列“123”-》123/132/213/231/312/321
2.把最后的K個鏈表結點放到前面去
1-2-3-4-5 2
4-5-1-2-3
下面是涼經。
網易一面 26歲的程序員,目測工作兩三年,面了半小時,寫了一小時代碼,不問實習,懟基礎+撕代碼
1.集合包有哪些?然后就是hashMap/hashtable/concurrenthashmap
2.tcp三次握手,為什么三次呀?
3.數據庫索引,底層b+樹?b樹和B+樹有哪些應用場景,這個不會。
4.層次遍歷樹
5.鏈表的公共結點
6.synchronized/lock鎖,你知道現在synchronized升級了嗎???(我真不知道)
7.你輸入一個網址,發生了什么事情。(結合自己搭的網站講的)
網易二面
全程50分鍾,面試官巨帥!!!!!
項目
場景題:兩台電腦各有一個相同的文件。現在有個電腦對文件某個字符進行了修改。請設計自己的通信協議。找到這個字符。
我建議他直接用git clone就行了。
他說要算法,最復雜的就是一個個比對。
我和他說,我們先算一半,求個和,比對一下,是一樣的,diff肯定在另外一半。
我以為就這么結束了,他叫我來寫一下。我說,要不給個接口吧,老哥。他說,你先寫吧
於是,我寫了這個。/*
find the diff character between 2 strings,return diff character
string s1, String s2
return: character
*/
public static char findDiff(String s1, String s2) {
int length1 = s1.length();
int length2 = s2.length();
if(length1 == 1 && length2 == 1) {
return s2;
}
int sum1 = 0;
int sum2 = 0;
for(int i = 0; i < length1/2;i++) {
sum1 += s1.charAt(i) - 'a';
sum2 += s2.charAt(i) - 'a';
}
if(sum1 == sum2 ) {
String sub1 = s1.subString(length1/2+1, length1);
String sub2 = s2.subStrong(length1/2+1, length2);
return findDiff(sub1, sub2);
} else {
String sub1 = s1.subString(0,length1/2);
String sub2 = s2.subString(0,length2/2);
return findDiff(sub1, sub2);
}
}
他說,希望控制在一個電腦上,於是,我又改了
我一開始忘了最后的退出條件,馬上加了。他說好。他又問我,溢出怎么辦呀。我說你用hash啊,他問我hash怎么寫啊。后來他提供了一種思路,砍掉高位,因為只有低位可能發生變化。
然后就是我來問他問題了。被掛了。反思原因應該是因為最開始的退出條件沒寫出來被掛掉了。很可惜,而且沒有感謝信,過了好久發郵件問HR才知道的。
愛奇藝一面 31分鍾,打電話,外面在割草,很吵。。。Java開發
介紹項目
如果有上億視頻的特征,你怎么做處理?
現在有1億個請求,你怎么設計你的服務器
如果內存泄露,怎么查?
總結,完成了這兩年的夢想,很不容易。
去年在北京,每天通勤兩個小時,日常擠地鐵。
leetcode現在已經做了350題,劍指三遍。
JAVA該看的書都看了
算法該融的模型也融了
只想證明
女孩子,也可以當程序員!!!