春暖花開,Java崗跳槽季,6個技巧可以大大提升你的面試成功率

推薦閱讀
春暖花開,宅在家裡快兩個月的在家辦公模式基本告一段落。企業復工,大家的工作生活終於可以迴歸正軌,相信不少朋友已經走出家門,迎戰跳槽季了。一些動作快的朋友已經拿到一兩個 Offer 了。

其實,除了表達能力和麵試技巧外,無非就從這些個方面進行準備:

一、那麼專業技能怎麼寫?

先問一下你自己會什麼,然後看看你意向的公司需要什麼。我說的是一般HR可能並不太懂技術,(當然內部人員來面試就不一樣了)所以他在篩簡歷的時候可能就盯著你專業技能的關鍵詞來看。對於公司有要求而你不會的技能,你可以提前花幾天時間學習一下,然後在簡歷上可以寫上自己瞭解這個技能。比如你可以這樣寫(下面這部分內容摘自我的簡歷,大家可以根據自己的情況做一些修改和完善):

  • 計算機網絡、數據結構、算法、操作系統等課內基礎知識:掌握
  • Java 基礎知識:掌握
  • JVM 虛擬機(Java內存區域、虛擬機垃圾算法、虛擬垃圾收集器、JVM內存管理):掌握
  • 高併發、高可用、高性能系統開發:掌握
  • Struts2、Spring、Hibernate、Ajax、Mybatis、Redis、JQuery :掌握
  • SSH 整合、SSM 整合、 SOA 架構:掌握
  • Dubbo: 掌握
  • Zookeeper: 掌握
  • 常見消息隊列: 掌握
  • Linux:掌握
  • MySQL常見優化手段:掌握
  • Spring Boot +Spring Cloud +Docker:瞭解
  • Hadoop 生態相關技術中的 HDFS、Storm、MapReduce、Hive、Hbase :瞭解
  • Python 基礎、一些常見第三方庫比如OpenCV、wxpy、wordcloud、matplotlib:熟悉

二、分享一下我面試某家公司Java高級開發崗位,文末會分享一些我個人的學習文檔

一面(基礎面:大約60分鐘)

  1. 自我介紹
  2. 對象相等的判斷,equals方法實現。 Hashcode的作用,與 equal 有什麼區別?
  3. Java中CAS算法?
  4. G1回收器講一下?
  5. HashMap,ConcurrentHashMap與LinkedHashMap的區別
  6. 如何在多線程環境下使用Map,ConcurrentHashMap原理,ConcurrentHashMap如何加鎖。
  7. 多線程併發的同步實現,有兩個方法,每個方法裡有a部分代碼和b部分代碼,我要讓兩個線程分別執行兩個方法,並且讓他們運行完a部分代碼再一起向下執行,如何實現。
  8. TCP連接中的三次握手和四次揮手,四次揮手的最後一個ack的作用是什麼,為什麼要time wait,為什麼是2msl。
  9. aio,nio,bio的瞭解
  10. ReetrantLock和synchronized的區別。
  11. Java有哪些悲觀鎖的實現?
  12. Java有哪些類實現了樂觀鎖?

二面(二面就死抓多線程問)

  1. 線程池有哪些參數?分別有什麼用?如果任務數超過的核心線程數,會發生什麼?阻塞隊列大小是多少?
  2. 數據庫連接池介紹下,底層實現說下
  3. hashset底層實現,hashmap的put操作過程
  4. 說說HaspMap底層原理?再說說它跟HaspTable和ConcurrentHashMap他們之間的相同點和不同點?
  5. 說說B+樹和B樹的區別,優缺點等?
  6. 算法題,對一個鏈表進行歸併排序,鏈表可能有環
  7. 怎麼實現一個線程安全的計數器?
  8. 原子類AtomicInteger實現原理是什麼?和你設計的計數器優劣比較?CAS怎麼實現原子操作的?
  9. Java中的鎖有什麼?synchronized與Lock的區別?公平鎖和非公平底層怎麼實現的?AQS原理詳細介紹一下?
  10. 你在項目中一般怎麼調優JVM的呢?
  11. 說一下GC吧,什麼時候進行Full GC呢?
  12. 你瞭解哪些收集器?CMS和G1。詳細談談G1的優點

三面(Redis和mysql也要掌握,面試也是必問

  1. 瞭解哪些排序算法,講講複雜度
  2. 手撕歸併排序
  3. Redis有哪些數據結構?底層的編碼有哪些?有序鏈表採用了哪些不同的編碼?
  4. redis的hash數據結構最多能存儲多少個元素
  5. 自己如何實現RPC?
  6. mysql默認存儲引擎?MyISAM、InnoDB、MEMORY的區別
  7. 什麼是幻讀,如何解決
  8. 事務隔離級別有什麼?通過什麼來實現的?分別解決了什麼問題?
  9. 樂觀鎖與悲觀鎖的使用場景

四面(這裡問的技術問題就較多了 分佈式架構 dubbo Spring cloud Kafka 數據庫

  1. 介紹對你技術能力幫助最大的項目,重點講架構設計思路
  2. 分佈式全局唯一ID怎樣來實現?
  3. dubbo的生產者如何發佈服務,註冊服務,消費者如何調用服務?
  4. dubbo負載均衡的策略有哪些?一致性哈希詳細聊一下?
  5. 分佈式session如何實現的
  6. 微服務你的理解?以及常用的微服務方案dubbo、spring cloud的比較?
  7. Kafka怎麼保證數據可靠性?
  8. 數據庫主從同步數據一致性如何解決?技術方案的優劣勢比較?
  9. 分佈式鎖的實現方式你知道有哪些?主流的解決方案是什麼?
  10. Spring兩大特性?AOP和IOC
  11. Spring的初始化過程?Spring bean的生命週期?
  12. 多個RPC請求進來,服務器怎麼處理併發呢?

面試建議是,一定要自信,敢於表達,面試的時候我們對知識的掌握有時候很難面面俱到,把自己的思路說出來,而不是直接告訴面試官自己不懂,這也是可以加分的。

三、比如,有如下的職位描述。

春暖花開,Java崗跳槽季,6個技巧可以大大提升你的面試成功率

我們能從中挖掘出如下的技能需求點:

  1. 3年經驗,熟悉常用類庫
  2. 熟悉Spring和Mybatis框架
  3. 熟悉分佈式中間件(比如消息,緩存等中間件)
  4. 熟悉數據庫,最好是NoSQL
  5. 最好有大數據經驗

而關於非技能的要求如下:

  1. 有責任心,有主動性
  2. 需要有團隊合作的能力
  3. 需要有良好的編碼習慣,學習能力要強。

對於java高級開發而言,可以準備如下的話題,大家也能以此為參考,準備些其它的話題:

  1. 虛擬機內存優化
  2. 數據庫性能調優
  3. 分佈式高併發架構
  4. 一些熱門組件,比如redis,nginx等
  5. 大數據方向的用法
  6. java core(比如集合或多線程)方面的底層實現代碼
  7. Spring系列(比如IOC, AOP, MVC,Spring Boot, Spring Cloud)方面的底層實現代碼。

四、要準備到什麼程度:

  1. 最好結合項目實際說出真的用過這些技術。
  2. 最好往性能調優方面靠。

下面就以虛擬機為例,說下如何在面試中引出該話題,以及面試時該怎麼說。其它亮點話題也可以照此準備。

第一:在簡歷的最近項目介紹里加上類似這樣描述,“這個項目的內存要求比較高,雖然在項目裡分配的對象不少,但這個項目只被分配了1G內存,所以在這個項目裡,我實踐了一些定位排查內存問題的技能,也做了些調優的工作“,這樣面試官見到簡歷的描述,就會自然而然地提問了。

第二:在面試中總會有“項目介紹”這個環節,面試官會讓候選人介紹最近的(或最拿得出手)的一個項目,這樣大家就可以順勢說出剛才已經給出的描述。

第三:大家可以在回答數據庫或集合等方面的問題時引出這個話題,比如回答完JDBC問題後,大家可以說一句,“用好的Connection對象我們會及時關閉,否則它所佔用的內存對象無法被GC回收”,或者在談及List等集合類型時,同時多說一句,“用好的集合對象我們會及時clear掉,否則這個集合也會對一些對象產生強引用,這樣就會延遲對象的回收時間”。

第四:在自我總結時,可以說,有虛擬機調優的經驗。

那麼,在面試時,該怎麼說呢?

  1. 大家可時設置成null,以撤銷強引用。集合對象用好後應當及時clear。儘量別頻繁地使用String(或其它不變類)對象,這樣容易產生內存碎片。
  2. 還展示監控、定位和調優方面的綜合能力。這裡可以說下,比如通過Jprofiler+jmeter進行JVM性能調優的方法。
  3. 大家甚至可以看些虛擬機的底層實現細節,在面試中說下,這樣能大大提升自己的專業素養。

五、刷題:

既然是要面試,那麼就少不了刷題,實際上春節回家後,哪兒也去不了,我自己是刷了不少面試題的,所以在面試過程中才能夠做到心中有數,基本上會清楚面試過程中會問到哪些知識點,高頻題又有哪些,所以刷題是面試前期準備過程中非常重要的一點。

六、提示自身的軟實力(知識和技術)

第二個關鍵就要自己的自身實力過硬了,無論是你應屆生,還是工作好幾年,無論是校招還是社招,企業招聘的永遠是自身實力過硬的,也就是你的知識儲備,你的技術水平要達到要求,而提升自身軟實力的唯一辦法就是:不斷學習。

以下分享一些我個人的學習文檔,有需要的朋友自行選擇獲取:

春暖花開,Java崗跳槽季,6個技巧可以大大提升你的面試成功率

春暖花開,Java崗跳槽季,6個技巧可以大大提升你的面試成功率

友情提醒:獲取以上所有文檔資料,轉發+評論,關注我,然後私信回覆【面試】即可打包獲取!(免費分享的~)

  • Java核心知識點
春暖花開,Java崗跳槽季,6個技巧可以大大提升你的面試成功率

  • Spring系列(實戰)
春暖花開,Java崗跳槽季,6個技巧可以大大提升你的面試成功率

春暖花開,Java崗跳槽季,6個技巧可以大大提升你的面試成功率

以上學習資料均免費放送,最後祝願各位順利拿到心儀的offer!


分享到:


相關文章: