2020.10.12東吳金科Java研發一面

2020-10-13 12:01:26


前言

這次面試的節奏感覺非常好,之前是面試官拉著我走,這次基本上就是我引導面試官問我想回答的問題

一、自我介紹

面試官針對自我介紹裡面的內容問了一些問題

1.Java和python的特點

答:我更多使用Java,python很久沒用了。Java物件導向、程式碼複用、各種框架SpringBoot dubbo SpringCloud、程式碼規範整潔。python給我第一感覺是程式碼簡單、隨意,python有很多庫,比如numpy、pandas、matplotlib,深度學習tensorflow大都用python

2.你學python幹了哪些事?

答:瞭解基礎語法,深度學習

3.介紹下深度學習

(談了一些影象識別、折積神經網路的內容)

二、專案

4.講一下貓眼影院專案功能、技術

答:五大模組使用者、影片、影院、訂單、支付
Dubbo微服務架構、Zookeeper服務註冊發現、鏈路監控、服務熔斷、服務降級、流量控制…

5.Zipkin幹啥用了?原理了解不?

答:用Zipkin進行鏈路監控,比如當專案上線之後,可以用zipkin進行調參,比如負載均衡。但是不瞭解底層原理

6.為什麼用dubbo?微服務有啥好處?

(結合純SpringBoot開發的仿餓了麼外賣專案進行了對比。主要回答的方向就是擴容:將大的服務拆分,不同的服務可以部署在不同機器上,解決單體架構的瓶頸)

7.外賣專案擔任隊長,怎樣管理的?

答:按照標準的軟體工程開發流程,前期有需求分析、系統設計等檔案,每人負責一個模組,開發過程中使用騰訊會議每天開個小會,總結每日工作情況。

三、程式設計基礎

8.有哪些資料結構?

答:陣列、佇列、棧、連結串列、堆、樹、二元樹

9.陣列、連結串列的區別?

之前的部落格中專門搞過 LoL
資料結構專欄:https://blog.csdn.net/qq_44357371/category_9468806.html

我講完區別之後,特意提了一下HashMap綜合了兩者

10.講一下HashMap

(先講了HashMap的結構,又特意說了在JDK1.7和JDK1.8中hashMap的區別(加入了紅黑樹))

11.為什麼紅黑樹佔用的記憶體比連結串列要大?

(之前看過紅黑樹原始碼,手寫了一點程式碼)我猜的:因為紅黑樹的每個結點有parent
父節點的指標、color、left、right,而連結串列只是一個next

12.講一下垃圾回收演演算法

(我個人認為,要講好垃圾回收這個題目,只說一個演演算法是遠遠不夠的,甚至演演算法都沒必要說,重點是講垃圾回收的結構,發生垃圾回收的時機)
答:垃圾回收演演算法包括標記清楚、標記整理、複製。要說清楚垃圾回收,還要從JVM的記憶體結構說起,垃圾回收主要回收的是物件,物件是存在堆中的,而堆裡面結構分為兩大部分:老年代、新生代。新生代分為三部分:eden伊甸園區、from、to,當物件來的時候,先進Eden,當它滿了,就發生一次小垃圾回收,活的進from,當from滿了,活的就進to,to滿了,就再進from,之後就一直這樣迴圈,直到 ①某個物件歲數達到(好像是15),就直接把這個老不死物件放進老年代 ②當新生代全滿了,進老年代。當老年代滿了,就發生最大的垃圾回收,STW,讓整個程式停止。

具體可以看我的另一篇部落格:Java堆記憶體介紹及簡單效能調優

三、演演算法

13.你最近做演演算法都哪些方面的?

答:沒有刻意去練習某個方面的演演算法題,我平時刷演演算法主要是為了鍛鍊自己解決問題的能力和思路,我更注重的是一個題目有多少個解決方案。

14.平時喜歡跑步?

問到這裡,瞬間就輕鬆了,哈哈哈哈


總結

繼續努力,繼續複習計網、作業系統、JVM
再做一點業務程式碼,練下感覺