面試官針對自我介紹裡面的內容問了一些問題
答:我更多使用Java,python很久沒用了。Java物件導向、程式碼複用、各種框架SpringBoot dubbo SpringCloud、程式碼規範整潔。python給我第一感覺是程式碼簡單、隨意,python有很多庫,比如numpy、pandas、matplotlib,深度學習tensorflow大都用python
答:瞭解基礎語法,深度學習
(談了一些影象識別、折積神經網路的內容)
答:五大模組使用者、影片、影院、訂單、支付
Dubbo微服務架構、Zookeeper服務註冊發現、鏈路監控、服務熔斷、服務降級、流量控制…
答:用Zipkin進行鏈路監控,比如當專案上線之後,可以用zipkin進行調參,比如負載均衡。但是不瞭解底層原理
(結合純SpringBoot開發的仿餓了麼外賣專案進行了對比。主要回答的方向就是擴容:將大的服務拆分,不同的服務可以部署在不同機器上,解決單體架構的瓶頸)
答:按照標準的軟體工程開發流程,前期有需求分析、系統設計等檔案,每人負責一個模組,開發過程中使用騰訊會議每天開個小會,總結每日工作情況。
答:陣列、佇列、棧、連結串列、堆、樹、二元樹
之前的部落格中專門搞過 LoL
資料結構專欄:https://blog.csdn.net/qq_44357371/category_9468806.html
我講完區別之後,特意提了一下HashMap綜合了兩者
(先講了HashMap的結構,又特意說了在JDK1.7和JDK1.8中hashMap的區別(加入了紅黑樹))
(之前看過紅黑樹原始碼,手寫了一點程式碼)我猜的:因為紅黑樹的每個結點有parent
父節點的指標、color、left、right,而連結串列只是一個next
(我個人認為,要講好垃圾回收這個題目,只說一個演演算法是遠遠不夠的,甚至演演算法都沒必要說,重點是講垃圾回收的結構,發生垃圾回收的時機)
答:垃圾回收演演算法包括標記清楚、標記整理、複製。要說清楚垃圾回收,還要從JVM的記憶體結構說起,垃圾回收主要回收的是物件,物件是存在堆中的,而堆裡面結構分為兩大部分:老年代、新生代。新生代分為三部分:eden伊甸園區、from、to,當物件來的時候,先進Eden,當它滿了,就發生一次小垃圾回收,活的進from,當from滿了,活的就進to,to滿了,就再進from,之後就一直這樣迴圈,直到 ①某個物件歲數達到(好像是15),就直接把這個老不死物件放進老年代 ②當新生代全滿了,進老年代。當老年代滿了,就發生最大的垃圾回收,STW,讓整個程式停止。
具體可以看我的另一篇部落格:Java堆記憶體介紹及簡單效能調優
答:沒有刻意去練習某個方面的演演算法題,我平時刷演演算法主要是為了鍛鍊自己解決問題的能力和思路,我更注重的是一個題目有多少個解決方案。
問到這裡,瞬間就輕鬆了,哈哈哈哈
繼續努力,繼續複習計網、作業系統、JVM
再做一點業務程式碼,練下感覺