今天5點半接到一個杭州的電話,是螞蟻金服打來的,當時心里一陣發慌,由于還在上班,就和面試官約定6點下班之后再來。掛完電話,心里忐忑的不行,感覺自己這也沒準備好,那也沒準備好。剩下半個小時完全沒有心思再工作了,把常問的HashMap,concurrentHashMap底層看了一下,算是臨時抱佛腳吧。一下班,就收拾出發在公司樓下找了個地方等面試電話。
沒一會兒,電話如期而至。先是聊了下大概情況,然后聊了下工作經歷。叫我挑選一個自己覺得掌握的最好的項目開始發問。
最開始問了你覺得項目中最難的地方,自己因為畢業了一直在小公司,也沒有感覺遇到特別困難的地方,憋了半天憋不出來。面試官也放棄了,直接問,項目中用到Map集合吧,用到過哪些Map。自己就說了個最熟悉的HashMap。但是面試官好像不太想問這個,又問有沒有用到過排好序的Map,當時自己腦子短路了,沒想到TreeMap是排序的,當時竟然一時想不出有排好序的Map,就說了沒有排好序的Map,但是可以實現Compareble接口來實現排序。肯定面試官也很無語,這送分題都不會啊!然后又問HashMap put方法的時間復雜度,我說因為HashMap底層是數組加鏈表實現的,如果沒有hash碰撞時間復雜度就是O(1),有碰撞最壞情況就是O(n)。然后看到我建立上有寫線程池,就問了下創建線程池的具體參數的含義,這個沒啥難的,然后又問線程池的緩存隊列,然后又問是否自己去實現過緩存隊列。最后一問完全不知道咋回答,因為平時都是直接使用現成的。然后繼續發問,問了下JDK bin目錄下的工具除了java javac還有沒有用過其他的。我心里想,面試官啊,你把我用過的工具都說完了。然后就只有說沒有使用過。自然又是跳過。然后又問項目除了開發,有沒有用到優化方面的。我想肯定是想問JVM方面的了。就說了下自己在測試環境服務老是啟動沒多久就掛了,自己調整了下堆內存的大小。其實當時只是試探性的加大了堆內存,根本沒有怎么去分析過。然后面試官問,你是根據什么覺得要去調整堆內存大小的,自己當時就慌了,因為沒有實際做過,所以就說自己在啟動項目的時候加了輸出GC日志的命令,看到有很多Full GC,所以就調整了。感覺面試官不是很滿意。然后又問我你知道JVM垃圾回收機制嗎?自己其實對JVM垃圾回收這一塊還是挺熟悉的,但是這么一問自己一時不知道怎么回答,就把垃圾收集器說了一下,但是感覺不是很對。后來回來百度JVM垃圾回收機制,感覺都有說到JVM內存結構,對象可達性分析,垃圾回收算法,垃圾回收器都有講到。其實自己這塊挺熟悉的,但是一籠統的問JVM垃圾回收機制當時一直在想我該回答哪一塊的內容。最后面試官問了如果你要讓現在做的項目更好,你回添加一些什么功能。但是自己想了半天也不知道如何回答。面試官應該也很無語,但是不得不說面試官全程都是態度非常好,電話面試都能感受到面試官是一個又謙虛又有真才實學的人。給了我很多建議,說我們程序員一定要一直保持學習,要多學習底層方面的東西。其實自己也很想學習底層的東西,但是底層的確實要難很多,很多書看不動,還是要繼續努力才行啊。面試官說,如果有下一步會發郵件,叫我注意關注下。
這次面試雖然表現很差,但是還是讓我獲益很多。我知道大的公司都喜歡面試底層,所以自己也對底層有過一些關注,在網上看到都會問HashMap , concurrentHashMap所以對這兩個的底層是看了又看,特別是concurrentHashMap的實現1.8之前怎么實現,1.8之后怎么實現都做了很深的了解,然而今天并沒有被問到。連簡單的TreeMap都忘了,也是自己平時沒怎么使用。平時的業務確實也沒有涉及到。還有自己對自己做的項目完全沒有一個總結,面試官問的關于自己項目的問題自己都回答的簡直像坨翔一樣。更深的感覺就是不管是什么東西,一定要自己動手去敲,去實現,這樣面試官問你你才能完完全全的回答出來,而不是去背書,背書的話隨便拐彎問兩下你就現原形了。
接下來,總結項目,根據項目用到的技術復習吧。螞蟻金服是真看中基礎,面試了半個多小時,完全沒有問一道框架方面的問題,我還以為會問Spring,Springboot相關的,然而一道題都沒有,也不知道是不是因為自己前面基礎知識回答得確實太差了,已經不想再問框架的了。面試了這一次也好,也知道該怎么準備了,接下來就是好好努力,努力看書,努力敲代碼了。以后爭取每一個知識點都自己去用代碼敲出來,直到把鍵盤敲爛為止。
-
工程師
+關注
關注
59文章
1569瀏覽量
68510 -
JAVA
+關注
關注
19文章
2966瀏覽量
104707
發布評論請先 登錄
相關推薦
評論