不少人看到這個,估計說我是來炫耀的,實際並不是如此,看我一一道來:因爲同窗在這邊,因此過來看看,以純屌絲形象腳踏一雙人之託鞋,手拎着一個用了5年的箱子,穿着一件睡衣同樣長的短袖,通過站了18小時火車,終於到了杭州火車站。到同窗那裏,因爲太累了,直接睡着了,到了次日,一大早就花了半個小時,投了一些本身比較心儀的公司。從九點就沒睡覺了,到晚上7點爲止接了30來個面試電話,不包括髮郵件。
如今事情就來了,到目前有選擇面試了7家,6家都拿到了offer,最後選擇了一家工資13k,工做環境不錯,有游泳館、籃球場、健身房、包吃(中餐和晚餐)包住(兩我的,兩室一廳那種),就是加班嚴重。linux
說這麼多,其實我主要想和你們分享一些面試經驗。究竟哪些技術點或方向能給面試官留下深入印象呢?程序員
我以爲優秀的,有潛質的程序員能夠從下面幾點體現。面試
須要清晰圖片的能夠到我首頁進羣免費領取!spring
幾乎每一個JAVA後端開發程序員,都會在面試時碰到諸如如何性能調優的問題,如何回答好這個問題,不只僅是對JVM,內存模型等的理解,更重要的是碰到性能問題時,排查問題的方法論和思路。數據庫
典型的一個場景是:在壓力測試時,發現FullGC頻率很高,如何解決?後端
此類問題通常從如下幾點入手:設計模式
觀察GC日誌,判斷是否有內存泄漏,或者存在的內部不合理點。此處要求能熟悉各類linux命令,能夠快速查看和定位。
調整JVM 參數,如新生代,年老代大小,S0和S1大小比例,不一樣垃圾回收器的採用。並結合業務特色作進一步分析。這裏不但要求紮實的JVM內存模型和理論,還要求對JVM的各類參數設置耳熟能詳,並能實踐操做。
Dump內存,作進一步的對象分析。
壓測腳本的編寫,性能問題解決前能夠發現問題,並能在問題解決後真實的驗證。
此類優化不只僅是照本宣科式的回答,面試官必定會喜歡問實際中操做的場景,和解決問題的思路。由於性能問題的緣由是多種多樣的,可是解決問題的思路和方法論是能夠明確的。網絡
你們必定都聽過或使用過網絡異步框架Netty,甚至使用netty框架開發過一些應用和功能。多線程
可是大部分人僅限於對Netty的使用,甚至僅僅知道其餘一些開源框架使用了Netty,可是在資深面試官眼裏,Netty有不少值得學習和借鑑的地方,使用過Netty而且能對Netty的一些原理有必定的瞭解且能學以至用的Java程序員格外受歡迎。架構
通常來講,要求較高的面試官和技術經理喜歡從Netty的設計模式角度深刻的考察技術人員對網絡開發和相關理論的理解如:
一、Netty的Reactor模型如何設計,反應在應用裏的模型是如何(見下圖)。
二、Netty的pipeline 責任鏈如何使用,業務場景中是否有相似的實踐經驗。
三、項目中有無使用Netty,並利用Netty進行私有化協議設計。
你們不只要求能使用Netty,經過閱讀其源碼,理解其中的精髓,並能應用在本身的實踐項目中,這個纔是亮點和加分項。
須要清晰圖片的能夠到我首頁進羣免費領取!
互聯網通過十幾年的發展,早已經從單體應用發展爲服務化應用,大廠裏系統和服務尤爲如此。
拿經典的dubbo 服務化框架 舉例,當前市面上有不少dubbo相關的文章和介紹,這裏撇開不談,從技術負責人的角度來,我會更關心下面有關幾個dubbo相關的問題。
一、技術選型:爲何選擇dubbo,而不選擇其餘如spring cloud框架?
我認爲能夠從以下考慮:
A)業務的特色以及可預見的後續的發展。做爲高級技術人員,必須須要對業務的的發展作預計和規劃。
B)可用性要求,是否須要達到4個99(99.99%),須要支撐的峯值QPS,是否有業務的集中爆發點,如電商大促
C)團隊的成熟度,一個成熟的團隊能夠很好的hold住複雜的開源框架,甚至作定製化開發。
技術選型話題雖然寬泛,可是最能體現體現技術人員的綜合能力,尤爲結合業務特色後對技術框架深度和廣度的駕馭能力。
二、Dubbo底層走的是什麼協議,如何處理異步轉同步?
大部分的Java開發都會直接使用dubbo,而不會去關心其底層一些技術細節,可是一些細節,如dubbo如何對對象進行序列化,用了哪些序列化方式,這些在分佈式項目中對提升應用的處理速度,減小網絡開銷,都很大幫助。
同時RPC框架裏如何將異步轉同步,也是須要技術人員很是關注的一面,裏面相關的設計模式,多線程程高併發場景都是不少業務系統裏真實須要和借鑑的。
三、Dubbo在高併發高可用等實踐場景須要認真考慮的其餘問題
使用了dubbo後,不少人以爲萬事大吉,其實並非這樣,下面幾點還須要關心,而且這些就是體現你價值的地方
A) dubbo依賴了zooKeeper,可是萬一ZooKeeper宕機了怎麼辦
B) 若是ZooKeeper假死,客戶端對服務端的調用是否會所有下線,若是是該如何避免
C) 如何監控duubo的調用,並作到優雅的客戶端無感發布
你們能夠自行思考,答案不是惟一!
項目中儘可能多思考,迎難而上,如碰到複雜的性能,內存泄露等問題的問題,每每是提高本身的機會,千萬要仔細研究解決,能夠參考其餘解決相似問題的文章和實踐經驗,對技術深度的提高是很大的,關鍵時候可讓你的面試官忽然以爲面耳目一新。
重視解決問題的思路和方法,不少時候技術人員能夠快速設計一個系統或解決一個問題,可是在資深工程師或面試官眼裏可能並非最優方案。如何解決?
不少技術人員的項目和技術相對單一,長久以往,容易形成技術思路和視野的狹窄,接觸不到行業最新思路和動態或者當前疑難問題的最佳解決方案。
對於渴望實現技術和職業成長的程序員,我爲你們準備的兩大福利:
福利1
整理本身的一些超有價值的架構進階視頻資料,以及「Java開發參考書籍」「Java開發學習圖譜」「大數據容器數據庫架構技術文檔」等......
適聽人羣:Java初、中級開發工程師!
免費領取視頻方式:
去個人首頁,進羣領取哦!