「架构师必备」关于网络优化你必须要知道的重点
一、前言
長文警告,事實上我不愿意寫太長的文章,一面是太冗余,一方面讀者容易疲倦,但是只要是涉及到源碼級別的,就肯定篇幅不短,因為太短肯定沒意義也解釋不清楚,但是相信,耐心看完這個文章一定會對Spring源碼有所收獲!
最近有很多讀者面試的時候都被問到了有關于Spring三級緩存的解決方案,很多讀者在面試受挫之后,試著自己去讀源碼,試著去跟斷點又發現一層套一層,一會自己就懵了,我這幾天總結了一下,為了能夠讓讀者更加的去了解Spring解決循環依賴問題,我決定從以下四個方面去講述:
一面
1.你覺得項目中用了MQ給你帶了什么好處,設計初衷是什么?會帶來什么缺點嘛? (項目針對性比較強,不細說)
2.在網頁鍵入taobao.com,到返回一個頁面,這期間都發生了什么?
3.你說到了session和cookie,這兩者有什么區別,應用場景是啥?
4.返回界面的文字,圖片,鏈接,你覺得是從哪里來的,或者說儲存在哪里?
5.描述一下TCP三次握手,這期間可以攜帶數據嗎?攜帶了數據會造成什么后果?
6.描述一下四次分手,第二次和第三次中間處于何種狀態?
7.說一下object類的所有方法以及他們的功能(真的是所有: clone, notify/all,finalize,wait, hashcode, equals, tostring, getclass )
8.抽象類和接口有什么區別?說一下你的個人理解。
9.詳細說一下final關鍵字,修飾變量,方法,類都有什么不同?能想到什么具體應用場
景嗎?
10.說一下equals方法,hashmap的底層,跟hashtable,concurrentHashMap都什么 區別
11.靜態分派和動態分派的區別?具體應用場景?
12.1 .8concurrentHashMap有什么變化,優化的意義在哪?
13. hashmap除 了結點數大于8,還有什么情況會樹化(這個我沒想出來,也可能是我沒聽清楚)
14. hashcode方 法有什么特點? hashset的底層是如何實現的?為什么用hashmap?
15.說說JVM內存結構(這里要問清楚是JMM還是運行時常量池)
16.你剛說1.8后方法區移動到內存中變成元空間,為什么要移過去呢?
17.那為什么常量池沒有移動到內存,而是轉移到堆了呢?
18.最后一個問題,說一下線程池的飽和策略
因為項目中使用到了MQ,所以就順便問了下,好在并沒有提問太過深入的東西,隨后問題幾乎每個都是高頻考點,2、4、5主要考察計算機網絡中的通信過程,例如三次握手/四次揮手,7-14考察Java基礎,隨后就是和JVM以及多線程有關的問題了。有需要的小伙伴可以參考這個進行針對性的復習。
二面
1.從項目啟動到現在,介紹一下你的工作以及遇到的難點,怎么解訣的?
2.講一下微服務架構都有哪些模塊?他們是怎么一起工作的?
3.讓你實現一個eureka,你會怎么實現?
4.用戶認證,為什么要用JWT,而沒用session-cookie, 應用場景?優劣?加密用的是什么算法?
5.為什么使用rabbitMQ,沒用別的mq?
6.說一說你項目應用了什么設計模式?適配器模式什么應用場景?
7.讓你實現AOP,你怎么實現?
8.spring事務有了解嗎?是如何傳播的?在你項目里的實際業務中是如何傳播的?
9.例如有ABC三個事務,分別原子性,整體也原子性,A事務出錯回滾,整體事務也會回滾,你會怎么設計呢?
10. ZooKeeper有 了解嗎? redis和Mencache的選型問題?
11.你之前的webServer項目介紹一下整個流程?你是如何做的多線程? socket相關?
12.你怎么使用線程池?參數怎么選擇?
13.你寫線程的時候會給他們起個可愛的名字嗎?為什么要起?線程錯誤排查工具用過哪些?
14. spring framework都有哪些模塊?你使用到了哪些模塊?怎么使用的?
15.使用的時候有沒有對某模塊功能進行擴展?
16.說一下集合類(線程安全角度)
到了二面,就會發現提問的重點發生了明顯的變化,從之前的基礎知識變成了項目架構方面的,這一輪考察的是平常學習過程中對于架構的使用與理解,現在都偏愛微服務架構,那是否思考過背后的原理?天天在用Spring,你對他到底又有多少認知呢?都知道消息隊列好,那好在哪?這些東西都是實際的項目中能接觸到,但是又經常會被忽略的東西,就看你是不是一個有心人了。
三面
1.詳細介紹一下點云擴增工具項目
2.你對分布式架構有什么理解?
3.你的項目中或在學習過程中有沒有遇到過很難的點?然后專心研究去解決掉他的
4.周圍有沒有優秀的人?有沒有值得你學習的點,并且你現在跟著做的?
5.平時看什么書?
6.有沒有根據興趣學習過一些額外的計算機知識,Al領域7 ,
7.在github研究過哪些開源項目?
8.你的職業規劃是什么樣的?
三面是壓力面,所謂壓力面是指面試官有意制造緊張氣氛,以了解求職者將如何面對工作壓力。面試人通過提出生硬的、不禮貌的問題故意使候選人感到不舒服,針對某一事項或問題做一連串的發問,打破沙鍋問到底,直至無法回答。其目的是確定求職者對壓力的承受能力、在壓力前的應變能力和人際關系能力。
這一輪的重點不在于對技術的考察,而在于對人的考察。我一直認為,面試最重要的是將你的核心競爭力擺上臺面。之所以會問你基礎知識,是因為技術能力是你的核心競爭力之一,但并不只是技術。如果面對壓力,如何與人相處,是否有探索精神,這些都是很重要的,畢竟每個老板都喜歡越有壓力就越有動力的員工吧。
總結
談到面試,其實說白了就是刷題刷題刷題,天天作死的刷。。。。。
為了準備這個“金三銀四”的春招,狂刷一個月的題,狂補超多的漏洞知識,像這次美團面試問的算法、數據庫、Redis、設計模式等這些題目都是我刷到過的
并且我也將自己刷的題全部整理成了PDF或者Word文檔(含詳細答案解析),有需要的朋友可以戳這里即可免費領取
66個Java面試知識點
架構專題(MySQL,Java,Redis,線程,并發,設計模式,Nginx,Linux,框架,微服務等)+大廠面試題詳解(百度,阿里,騰訊,華為,迅雷,網易,中興,北京中軟等)
算法刷題(PDF)
線程,并發,設計模式,Nginx,Linux,框架,微服務等)+大廠面試題詳解(百度,阿里,騰訊,華為,迅雷,網易,中興,北京中軟等)**
[外鏈圖片轉存中…(img-YIkZ8uQ4-1624437784637)]
算法刷題(PDF)
總結
以上是生活随笔為你收集整理的「架构师必备」关于网络优化你必须要知道的重点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文件系统模拟程序python_如何使用s
- 下一篇: 基本语法和数组(二维,多维,交错数组)