Java程序員跳槽,三面全過,面試官:你這樣的,我們招不起

程序員小李在沿海城市工作了8年,那裏漲幅飛快的房價限制了程序員小李在一線城市安家的想法,再加上突然發生的疫情暴露了遠在他鄉工作的不便,在種種因素下,程序員小李決定回家工作。

既然已經下定決心告別一線城市回家鄉發展,那也就意味着,做好了降低工資標準的準備。

碰巧有一家互聯網公司在招人,Java開發工程師,薪資範圍18K~25K

程序員小李一看,喲,也不算很低啊!於是投了簡歷,等着面試邀請。

不出兩天,面試邀約就來…程序員小李如期赴約,經過了前面兩場面試後,就有了如下的情形…

面試官:說一下sleep和wait的區別?

程序員小李:哦,這個簡單

1. 對於 sleep()方法,我們首先要知道該方法是屬於 Thread 類中的。而 wait()方法,則是屬於Object 類中的。

2. sleep()方法導致了程序暫停執行指定的時間,讓出 cpu 該其他線程,但是它的監控狀態依然保持着,當指定的時間到了又會自動恢復運行狀態。

3. 在調用 sleep()方法的過程中,線程不會釋放對象鎖。

4. 而當調用 wait()方法的時候,線程會放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象調用 notify()方法後本線程才進入對象鎖定池準備獲取對象鎖進入運行狀態。

面試官:嗯,不錯,說一下線程池。

程序員小李:額~是說那四種線程池嗎?還是線程池的工作原理、工作流程?

面試官:額~那換一個問題吧!什麼是中間件?

程序員小李:

中間件是處於操作系統和應用程序之間軟件,使用時往往是一組中間件集成在一起,構成一個平臺(開發平臺+運行平臺),在這組中間件中必須要有一個通信中間件,即中間件=平臺+通信。該定義也限定了只有用於分佈式系統中才能稱爲中間件。

主要分類:遠程過程調用、面向消息的中間件、對象請求代理、事物處理監控。

面試官:如果要你自己設計一箇中間件,你會怎麼設計呢?

程序員小李:我會從以下幾個方面考慮:

1、遠程過程調用

2、面向消息:利用高效的消息傳遞機制進行平臺無關的數據交流,並給予數據通信來進行分佈式系統的集成,有以下三個特點:

  • 通訊程序可以在不同的時間運行

  • 通訊晨旭之家可以一對一、一對多、多對一甚至是上述多種方式的混合

  • 程序將消息放入消息隊列會從小吸毒列中取出消息來進行通訊

3、對象請求代理:提供不同形式的通訊服務包括同步、排隊、訂閱發佈、廣播等

可構築各種框架如:事物處理監控器、分佈數據訪問、對象事務管理器 OTM 等。

4、事物處理監控有以下功能:

  • 進程管理,包括啓動 server 進程、分配任務、監控其執行並對負載進行平衡

  • 事務管理,保證在其監控下的事務處理的原子性、一致性、獨立性和持久性

  • 通訊管理,爲 client 和 server 之間提供多種通訊機制,包括請求響應、會話、排隊、訂閱發佈和廣播等

面試官:嗯,很好,那個MySQL優化怎麼做?

程序員小李:MySQL 的優化一般可以從存儲引擎的選擇、字段類型的選擇、索引的選擇、分區分表、主從複製、讀寫分離、SQL 優化等這裏方面入手。

額,例如,儲存引擎方面,在創建表的時候我們使用sql語句…

面試官:行了行了,不用太細了,我聽不懂,那個,講一下Redis吧!

Redis 支持的 Java 客戶端都有哪些?官方推薦用哪個?

程序員小李:Redisson、Jedis、lettuce 等等,官方推薦使用 Redisson。

面試官:Redis 如何做內存優化?

程序員小李:儘可能使用散列表(hashes),散列表(是說散列表裏面存儲的數少)使用的內存非常小,所以應該儘可能的將數據模型抽象到一個散列表裏面。

比如 web 系統中有一個用戶對象,不要爲這個用戶的名稱,姓氏,郵箱,密碼設置單獨的 key,而是應該把這個用戶的所有信息存儲到一張散列表裏面。

面試官:那個Redis緩存雪崩、穿透這些你是不是也知道?

程序員小李:嗯,知道,緩存雪崩就是緩存同一時間大面積的失效,所以…

面試官:可以了可以了,咳咳~

面試官左手掏出了右口袋的紙巾,擦了一把汗。

面試官:嗯,你的表現很好,技術功底也很紮實,包括我,前兩個面試官也很滿意…

程序員小李面露欣喜,心中也已經對這份工作十拿九穩了。

面試官:但是,事情是這樣的啊,就你現在的情況,我們招不起,想招一個更便宜的

程序員小李:啊?沒關係的,你就按照你們發的那個薪資範圍來就行…

面試官:實話告訴你吧,那就是寫在上面吸引人的,實際上我們連最低那個都達不到,這樣,如果你接受10K的話,明天就來上班

程序員小李:這樣啊~耽誤我這麼久時間,那行吧,我先回家,你們等通知吧!


小編閒話

上面的故事中,程序員小李其實是具備很強的技術能力的,但是,所面試的互聯網公司只是一個小公司,養不起他這樣的人才,可以看出,甚至連面試官的技術水平都不高。但是,你會發現,不論公司多大,需不需要該技術,他們都會問一些更廣更深的問題。

無論如何,程序員只有掌握了更廣更深層的技術,才能做到碾壓面試官,把主動權掌握在自己手裏。

下面給各位粉絲朋友分享一些電子書、一線互聯網大廠面試真題,需要的朋友可以看看我主頁左側,或者私信【資料】,就可以免費領取啦!

電子書

大廠真題

真題專題分類


怎麼領取?看看我的主頁左側,你就懂啦!

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