網易杭研Java開發面經

8 月 14 號下午視頻面的,崗位是 Java 開發,面試官挺客氣,說話也慢條斯理的,也會主動引導我的思路。希望能有二面吧:persevere:

自我介紹,問了一下實習相關的,沒介紹項目。
Java 中的容器分類有哪些?那麼 Map 有哪些咩?LinkedHashMap 的底層實現? LinkedHashMap 有哪些應用場景呢?emmm…這個我就說可以用它來實現 LRU,自己一般用 LinkedHashMap 較少,只是在 HashMap 基礎上爲了記住插入順序才用這個的,面試官也沒說啥,這個問題就過了。然後問 TreeMap 底層呢?,TreeMap 相比 HashMap 的特點?後面還追問了 TreeMap 中紅黑樹複雜度計算方式…這個我就不會了,後面還是要補一下,好幾次面試都問了紅黑樹。
Java 中的鎖有哪些分類?可重入鎖是悲觀/樂觀鎖?樂觀鎖怎麼定義的?樂觀鎖有哪些問題?
介紹下實習中的項目?項目中用到了 Netty,你對 Netty 瞭解多少?本以爲要引出 NIO 了,結果沒問…沒問…好像之前看網易 Java 面經確實都沒有問 IO 相關的,可能是網易那邊業務中涉及比較少吧。
Spring 核心理念?說下你對 IoC 的看法?那麼 Spring 怎麼解決循環依賴問題的?這個問題我就不會了。。直接說的是我不知道(抓到知識盲點一個,以前看到過這個問題但是沒有仔細研究過)。那你說下 AOP?AOP在Spring中底層實現?JDK 中自帶的實現接口,cglib 中的繼承要代理的類,那麼你知道 cglib 的底層原理嗎?我說只知道底層好像是使用 Enhancer 類來操作需要代理的類來實現繼承關係的…其它的我就不知道了。
線程池用過嗎?你知道 Java 中創建線程池的方式?我說有五種,Excutor 中的 newSingleThreadPool、newCachedThreadPool、newFixedThreadPool、newScheduledThreadPool 以及使用線程池自身的構造方法 new ThreadPoolExecutor 創建,並說了一下里面的參數。然後問那你說一下這幾種線程池的底層實現?balabala,這個比較簡單,然後接着一個問題來了,那你說一下 newSingleThreadPool 和直接創建線程有什麼區別?emmm…我不知道從哪個點說,面試官提示我說一下線程池的優點?我說有降低資源消耗、提高響應速度(主要體現在線程上下文切換)以及對線程的管理上,回到這個問題本身,我覺得應該是單線程線程池能夠更好的被管理吧,面試官沒點頭也沒搖頭這個問題就過了…最後面試官問了一下有沒有用過第三方的線程池,就是 JDK 之外的?我說沒有,他說數據庫連接池用過吧,比較一下數據庫連接池和線程池?這個只能說設計思想是相同的,具體一一說出來,還真沒有方向,面試官也沒再追問就過了。
Redis 用過吧(項目中寫了),本以爲要問我 Redis 底層的,好吧也沒問,他問我怎麼保證 Redis 高可用性,我說我搭了 Redis 集羣,從 CAP 原理開始扯如何保證高可用性 balabala。
然後又問了一個項目,JVM 監控系統是否會對目標對象產生影響 balabala,最後面試官好像實在記不起來還能問啥,就結束了…
感受:全程問的都比較基礎,沒有揪着一個問題深挖底層,也沒有問 MySQL、設計模式、HTTP、計網相關的,但是恰好我正需要這些知識點查漏補缺,包括 JVM 相關的也問的很少(也可能是項目中有一個 JVM 相關的,所以沒問其中的知識點),不過還是希望網易能給個二面機會:weary:

需要java學習路線圖的私信筆者“java”領取哦!另外喜歡這篇文章的可以給筆者點個贊,關注一下,每天都會分享Java相關文章!還有不定時的福利贈送,包括整理的學習資料,面試題,源碼等~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章