<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          連續(xù)40場面試后的一點總結(jié)與心得

          共 3584字,需瀏覽 8分鐘

           ·

          2023-03-06 01:04

          面試受挫

          一直以來沒有總結(jié)的習(xí)慣,今天聽取冰河大佬的建議說按照自己的思路對面試進(jìn)行一個總結(jié),但是因為自己的知識儲備太少,想來想去沒有一個很好地想法來組織對于這場面試的一些思考,就總結(jié)一下這40天來平均一天一場面試的經(jīng)歷吧,記錄一下一個非科班的慘痛轉(zhuǎn)碼路(半程)。

          大概是3個月前完成小論文后開始全身心投入開發(fā)知識的學(xué)習(xí),那段時間經(jīng)歷了可能是所有轉(zhuǎn)碼人要經(jīng)歷的陣痛:不知從何學(xué)起。當(dāng)時心里想的是,管他三七二十一搞個項目來看看開發(fā)到底是多難。于是就選了一個后來才知道已經(jīng)被稱作“爛大街”的RPC項目。跟著做完之后心情是舒暢的,想著這樣就算開發(fā)一個框架了,滿心歡喜地向心儀的大廠投出了人生第一份簡歷。面試官人很好,很委婉地表達(dá)了我怎么能這么菜的疑問,我張著嘴說不出一句話。

          遇見bhrpc

          一落千丈的心情不必多言,悲傷的我在搜索那些我回答不上來的問題的時候發(fā)現(xiàn)了 bhrpc,我可能才第一次明白了什么叫系統(tǒng)設(shè)計,沒有什么所謂爛大街,只是你去實現(xiàn)的方式有沒有觸碰到開發(fā)最核心的能力而已。

          其實反思學(xué)習(xí)bhrpc的這一個月,最大的問題是難免陷入依葫蘆畫瓢的照搬中去。雖然代碼是一行一行敲出來的,但是根本沒有多思考為什么會是這樣。對于我們這些基本沒有實戰(zhàn)經(jīng)驗的學(xué)生而言,我覺得主動抓住所有產(chǎn)生的疑惑然后去求索對于加深理解是很重要的。

          印象很深刻的是有一次我連著做了幾個SPI擴展序列化方式的章節(jié),在我寫完后進(jìn)行測試時忘了重啟服務(wù)端直接運行了客戶端(以前我一直會重啟),發(fā)現(xiàn)換了序列化方式之后服務(wù)端竟然會按照新的序列化方式返回,我在想服務(wù)端啟動的時候不是就在里面設(shè)置好了encoder和decoder嗎,那序列化方式不應(yīng)該是固定的嗎?

          結(jié)果首先證明我的想法是錯的,再進(jìn)一步考慮服務(wù)端如果啟動后只能支持一種序列化方式,客戶端怎么會發(fā)送序列化方式過來呢?于是就一步步找,找到BaseServer啟動Netty的地方,去研究這個經(jīng)常被使用的Netty的模版啟動方式到底是怎么工作的。

          閱讀Netty的文檔后才明白在指定了生成channel的類型后,channel的注冊是在連接后才發(fā)生的,從發(fā)送來的protocol中獲取序列化方式,然后才進(jìn)行消息體的反序列化。明白了之后覺得就是這么簡單的一件事啊,可是弄懂之前又會覺得怎么可能是這樣哈哈。

          面試總結(jié)

          其次我覺得面試對我而言算是一種很重要的進(jìn)步途徑,因為我們本身缺乏實踐,當(dāng)面試官從實踐的角度去提出一些問題的時候常常能讓我有一種豁然開朗的感覺,印象很深刻的一次面試?yán)铮嬖嚬賹ξ艺f了無數(shù)次“思路要打開,不要局限在自己學(xué)的知識里”。

          其實就是想問我分布式ID的相關(guān)問題,可是我根本沒有了解過,面試官循循善誘,指出我現(xiàn)在的解決方案的問題會出現(xiàn)在哪里,從哪個方面可以去解決。當(dāng)從實際的需求中一步步得到解決方案后,我覺得我可能再也不會忘記了。

          引用冰河大佬的口頭禪,“紙上得來終覺淺,絕知此事要躬行?!睂W(xué)了忘,忘了再學(xué)的情況大抵也是因為連這個技術(shù)的出現(xiàn)是因為什么需求都沒想明白,就稀里糊涂地學(xué)了一通。

          后續(xù)規(guī)劃

          從過往的經(jīng)驗規(guī)劃以后的學(xué)習(xí)的話,我覺得對于我而言首先就是重視知識間的連通性,比如TCP的流量控制,避免浪費網(wǎng)絡(luò)資源的滑動平均法也可以用在其他可能會出現(xiàn)資源浪費的情況等。

          其次多閱讀文檔,多看源碼,爭取不再給面試官說“如果你看了源碼你就知道了”這句話的機會。

          中間件方面,還是要先會用,通過實踐去鍛煉動手能力。

          最后也最重要的是,繼續(xù)鞏固Java的基礎(chǔ),甚至計算機基礎(chǔ),這樣在看到一些復(fù)雜設(shè)計的時候才能看到更本質(zhì)的東西,也才能觸類旁通、舉一反三地去學(xué)習(xí)、思考和總結(jié)。

          到現(xiàn)在學(xué)習(xí)的動力已經(jīng)由“想找到一份心儀的工作”轉(zhuǎn)變成了真的被這些框架設(shè)計的精巧所吸引,想去深入地了解。這或許就是入門的時候有一個好師傅的重要性吧哈哈,后面的路也要認(rèn)真走下去,加油!


          面試真題

          綜合性問題

          • 講一講對自己這個 RPC 項目的想法,你是怎么設(shè)計這個項目的,想要實現(xiàn)那些功能?
          • 你認(rèn)為一個好的 RPC 框架最重要的特性有哪些?或者說什么是一個好的 RPC 框架?
          • 就穩(wěn)定性而言,如果在一個不穩(wěn)定的網(wǎng)絡(luò)情況下,連接經(jīng)常出現(xiàn)閃斷,那你這個 RPC 框架會怎么做?
          • 那發(fā)生了閃斷,你這次的請求會視作失敗的還是成功的?
          • 那這里會出現(xiàn)問題,因為網(wǎng)絡(luò)是不可靠的,有可能服務(wù)端已經(jīng)處理過這次請求了,只是客戶端沒有收到回復(fù)而已,如果服務(wù)端不是冪等的,就會出現(xiàn)業(yè)務(wù)的錯誤
          • 如果你看過一些 RPC 的實現(xiàn)就會知道一般對于這種問題都會使用請求 ID 來解決,拿著這個請求 ID 服務(wù)端就可以進(jìn)行一些追溯之類的操作,不能完全依靠方法名稱和請求參數(shù),因為這些是可以重復(fù)的
          • 請求 ID 是怎么生成的?
          • 是存在內(nèi)存里的還是數(shù)據(jù)庫里的?你在內(nèi)存里怎么保證不重復(fù)呢,服務(wù)一重啟不是馬上又從 1 開始了?還有如果你的 RPC 框架在集群里,那你怎么保證每個服務(wù)器的 id 不一樣呢?

          Java

          • Java 學(xué)習(xí)有多久了
          • 簡歷里面為什么要單獨列出來了解集合框架、JVM 和并發(fā)體系,你是怎么理解的
          • HashMap 里的 key 可以為 null 嗎,value 可以為 null 嗎?
          • 那如果 get(null) == null 的話,可以判斷是沒有這個鍵值對還是 key,value 同時為 null 嗎
          • 如果確切地知道 key 用什么方法?
          • TreeMap 了解嗎?有什么特性
          • 什么時候需要用到 TreeMap
          • ConcurrentHashMap 的 key 可以為 null 嗎?value 可以為 null 嗎?
          • 你在寫代碼的時候?qū)?ConcurrentHashMap 進(jìn)行 try-catch 嗎?
          • 那為什么 value 不能為 null 而 HashMap 可以?

          并發(fā)

          • 你的項目里肯定涉及到了并發(fā),在你處理并發(fā)的時候都用到了什么工具,什么類?
          • Java 7 里提供了 fork join,是為了解決什么問題?
          • 那用鎖、信號量不行嗎?
          • CountdownLatch 用過嗎?

          場景

          • 有一個 8G 大的文本文件,存的字符串,你只有 2G的內(nèi)存,找出重復(fù)的字符串以及出現(xiàn)的次數(shù)
          • 需要你生成一個在時間和空間維度全局唯一的 ID,你怎么生成?
          • 機器重啟之后就要重新申請,那怎么保證請求的 id 不被浪費呢?

          編程

          模擬計算器,包含 “加減乘除” 和 “括號” 的操作,處理一個字符串,求這個字符串對應(yīng)的結(jié)果

          • 實現(xiàn)基本功能
          • 用面向?qū)ο蟮乃枷朐O(shè)計程序
          • 能夠識別字符串是否有效
          • 能夠處理大數(shù)乘法

          喜歡就點個? 在看 ? 唄???

          瀏覽 85
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男人美女一起搞基视频网站 | 99久热在线 | 国内自拍偷拍视频 | 音影先锋男人资源站 | 精品久久久久爆乳 |