感謝粉絲主動分享本身的面試經歷。java
程序汪你好,我很想跟你分享一段我最近的面試經歷和我本身的感覺。但願你能耐心的讀完個人面試過程,謝謝!面試
先說一下個人我的狀況:2019年畢業生,普通一本院校,昆明理工大學(非985/211),自認爲不是咱們學校畢業生裏面Java方向最厲害的一個,但敢說本身是同窗中對Java最努力的一個。redis
工做地點是雲南昆明,也一心想往互聯網方向去走,各類緣由,如今在一家偏向於傳統行業的公司作Java開發,公司用到的技術棧,總體技術高不成低不就,會很前沿技術的大佬基本找不到。微服務,redis這些仍是用到的,可是像多線程,MQ,Docker,K8s這些根本接觸不到,本身危機感很強烈,因此平時徹底靠自覺去學習,對了,我今年22。這是個人基本狀況。數據庫
此次面的是一個作中國移動業務的互聯網公司(南京的一家公司在昆明的分公司),招聘信息上是8-13K的Java研發崗。我投遞時候填的指望薪資是10K,一面二面HR面所有經過以後我能接受的最低是9K。總體的面經我整理了一下,說實話我感受問的仍是有點多,有些也記不起來了。緩存
1)自我介紹。cookie
我回答的中規中矩,自報家門,項目經歷,本身的求職意願和擅長的技術棧。(我點了java基礎,redis,微服務,多線程和jvm)網絡
2)提問我Spring的IOC和AOP?session
由於本身剛看過源碼,我從出發點爲應用程序提供一個基礎的可運行的環境爲目標,而後在refresh方法裏面刷新bean工廠,解析bean標籤,註冊beanDefinationMap,建立單例對象,依賴注入和三級緩存解決循環依賴的步驟大概說了一下。整個過程我也故意停頓,在觀察面試官的反應,有迴應的地方我就說的細一點,沒有迴應我就簡單說一下。我說完IOC他就沒有對AOP進行提問。我以爲開場這裏我表現的還不錯。數據結構
2)提問我數據庫優化多線程
也是比較巧,這個問題我跟小夥伴討論過。
個人回答是:
1、優先保障可用,我考慮主從。
2、將大表水平或者垂直拆分(垂直拆分用主鍵取模,爲何不用其餘的辦法),拆分以後怎麼作查詢。
3、我才說索引,建立索引須要注意什麼,使用索引須要注意什麼。
2)提問我Hibernate和MyBatis的區別
這一個其實比較常規的問題,對比優缺點,我把我能想到的都說了一下,對這兩個框架我都不是很瞭解,底層源碼也尚未看過。
2)接着提問寫SQL的時候要注意什麼
我把有用到索引的狀況和沒有用索引的狀況都說了一下。
2)提問我微服務的一些知識
這裏聊的時間比較長,服務註冊和發現,負載均衡,熔斷限流降級這裏聊的多一點點。
以後說了一個分佈式事務,我只記得二階段提交,TCC補償和進最大努力通知這三種辦法,由於我對MQ不是很瞭解,我在聊盡最大努力通知的時候故意答的比較少,而後我說我作業務系統通常用阿里的seata比較合適,而後把Nacos,Sentinel這幾個阿里最新的微服務組件點了一下。不過面試官反饋不是不少,因此我就以爲好像他們的項目沒有用這些,反而問了我一個服務監控的組件,我一猜就知道好像它要問了鏈路追蹤+Zipkin那一套,我就隨便聊了一下。
2)提問我在生產上有沒有遇到內存泄露的狀況。
提問我JVM的理論我仍是有信心的,可是實際的jvm內存溢出排查我是沒有多少經驗的,業務系統作多了就這樣。惋惜這裏它就只隨便點了一下JVM裏面的幾小個問題,問的不是很深。可是我也回答出來了。
2)一些比較常規的問題
此次面試比較尷尬,面試官沒有打印個人簡歷,快要結束的時候他才說,而後我立刻從包裏拿出來給他。
對着簡歷上面又補充了一些,Redis的RDB,AOF啊這些也問了。而後問了問Linux的常規命令,有沒有用過,有沒有在上面裝過上面東西之類的。
最後問我最近在學什麼?我說在學一下多線程和K8s,我說想往雲計算靠一靠,由於作Java危機感比較強,可能之後幾年k8s會成爲一些企業的新選擇吧。
以後他的話讓我很費解,他說別人都已經作好雲計算了,咱們直接買就行了,爲何企業還要用K8s本身搭建呢,而且容器穩定性和併發上也不是很可靠呀。
一面到這裏就結束了,整個提問-回答的時間大概是一個小時左右。其實有些問題我沒有答好,有些本身也確實不知道。可是仍是收到了二面的通知。
二面:
⦁由於提早知道是分公司的領導面,剛開始我覺得不是技術面,可能就是簡單的談薪之類的。
一、Spring
一樣的一開始問Spring(生命週期,做用域,ioc容器是什麼),問到循環依賴的時候,我就知道了此次面試的是個技術牛人。試探了我以後,就大概知道我是什麼水平,因此以後問的問題就是那種精簡回答的形式,問的都很細,不會有你說一說微服務這種很寬泛的問題,都是很直接的問到一些細節上。我能記起來的還有:
二、reids : 緩存擊穿、布隆過濾器、主從哨兵、集羣之間是怎麼共享數據的、Redis實現分佈式鎖 (都答上來了,Redis應用我仍是以爲有點信心的,底層的一些數據結構我就不太清楚了,此次面試對Redis也沒問的很深)
三、多線程:悲觀鎖、樂觀鎖、可重入鎖、得到線程的方式、線程池7參數,這些我以爲我仍是答上來了。線程本地變量(我沒答上來),還有一個僞共享問題,我想了幾秒鐘纔想起來好像是cpu緩存帶來的問題,可是我只說我看道格李在juc源碼包裏面是把數據用空變量補滿這個cpu緩存行來解決的,別的就真不知道了(以後我去百度,我竟然蒙對了一半)。面試官說這個問題確實有點難,以後多線程這裏就過了。我比較奇怪,竟然沒問volatile和synchronized
四、集合框架:HashMap確定是必問,不把put、擴容、循環鏈表這些說清楚都不罷休的那種。HashTable,ArrayList,LinkedList這些都問了(我感受答的還能夠)
五、數據庫:直接提問1千萬條數據的表,怎麼去優化。我回答的是先取模分庫分表,再考慮索引。又接着問索引B+樹這些比較常規。
六、網絡:session,cookie,token這些,四次揮手 (比較模糊,答的不是很好,尤爲是四次揮手,我當時忽然記不起來了那兩個變量叫啥了)
還有一些是我不知道的,問到的時候我坦白沒有看過源碼或者沒用過:
memacahce、還有MyBatis源碼裏面的東西
最後給個人答覆是:7K能接受的話能夠來這裏鍛鍊一下。
其實我是不能接受的,感受本身的努力沒有獲得確定,也是鬱悶了好幾天。最後他們總部的HR電話跟我談:不是不願定個人能力,而是在昆明這個地方,畢業一年確實很難突破這個價位,要考慮平衡性,同等水平的在他們公司也是這個價位。反正各類說了不少。(我如今所在的公司就已是7K了,因此不想作一些沒有意義的操做,HR她本人也問過我,也是知道的)
其實說了這麼多,我以爲有句話是頗有道理的:我理解你,可是我不會支持你。
我以爲互聯網是一個相對其餘行業比較公平的行業,只要你努力,就有不少能夠選擇的機會,無論在傳統行業仍是求之不得的大廠,只要想提高本身,方式方法不少的,整個網上的資源不少,各路大神創造下的神話也不少。我會鬱悶一段時間,爲何由於本身的經驗低就要被壓價,年齡在這個時候反而成爲了劣勢,爲何活幹的沒有我利索的人拿的要比我多。鬱悶歸鬱悶,我只能接着去努力,在下一次有選擇機會的時候,不讓最終的結果辜負了本身這麼多個晚上的伏案苦修。
講到這裏,給你們推薦小編經過一些大廠的朋友要到了他們內部的Java面試題,資料可貴,並且仍是近一年的真實面試題;
分別有:螞蟻金服、拼多多、阿里雲、百度、惟品會、攜程、豐巢科技、樂信、軟通動力、OPPO、銀盛支付、中國平安等初,中級,高級Java面試題集合,附帶超詳細答案,但願能幫助到你們。
小編網盤也經過這些年的積累,把Java電子書也分享給你們,大概有10G左右的資源
珍藏多年的230個高端簡歷模板,也一塊兒送給你們
1.備註:思源
2.點點這個連接免費獲取:架構資料