基金暴跌喚醒了頹廢的程序員|附面試經驗分享
本文來自讀者投稿,原作者:zzw
5月份離的職,裸辭的。在家咸魚了2個月了。
雖說平時刷刷劇啊啥的,但是中間還是看了些書的,不過一直不想去工作,主要是在家做條咸魚可太爽了!特別是看到我買的基金,我3月底買的,這收益率到上周都有60%了,還上啥班。這躺著比一天工資都多啊哈哈哈。
然而上周四,也就《變味的茅臺,誰在買單?》和中芯國際上市那天,一天把我跌傻了,想想算了算了還是找份工作先穩(wěn)著,這股市還是跌宕起伏啊,頂不住,死工資雖然少啊,但是畢竟穩(wěn)啊。
于是就投了波簡歷,然后就和面試官約好周一的晚上19點,懷著激動的心情在19.10分總算接到了電話,沒有多余的話,面試官直入正題,先來個自我介紹。
我巴拉巴拉的說了一下做的項目,然后面試官說可以,我看你簡歷里面寫著對網絡很熟是吧,那我先來問問網絡吧。
由于最近看的都是關于網絡的書,我特意寫了在簡歷里面突出了下計算機網絡,果不其然..嘿嘿。
下面我把面試官的問題都作為小標題的形式突出以下,便于觀看。
其實面試的過程還是有很多來回的談話的,不過我記不太得,不過大致的問題就是這樣的,為了突出重點就一個標題一個回答的形式來敘述我整個面試的過程。
面試過程
說下 https 吧,和 http 有什么區(qū)別
https相對于http來說主要多了一個SSL層,通過SSL加密數據包,通過證書驗證身份,使得數據更安全。
那說下https是如何加密的
簡單的說就是客戶端在請求服務器的時候得到服務器的證書和公鑰,然后自己生成一個密鑰,通過公鑰加密,傳輸給服務端。然后服務端通過私鑰解密,這樣就得到對稱加密所需的密鑰,之后就通過對稱加密通信。
為什么需要這么麻煩,直接公鑰私鑰通信不行嗎
非對稱加密比較耗時,對稱加密比較快
那你再說說dns 如何工作的
簡單的說就是通過udp去查ip
太簡單了,再詳細一些
主要就是先去本地找,本地沒記錄去本地運營商那里找,一般都有,如果沒的話,就去根服務器找,然后再找到頂級,再找權威這樣迭代下來,最終找到返回。解析過的都會在本地緩存著。
看來還挺熟,那tcp三次握手這種不問了,半連接隊列知道么?
知道就是服務端存儲客戶端發(fā)起 syn 請求后把這個連接存在半連接隊列。
半連接滿了會怎么樣?什么參數來調
丟失連接把?tcp_max_syn_backlog
tcp擁塞控制知道么
知道,先慢啟動,然后擁塞避免,快速重傳和快速恢復。
那bbr知道嗎?
知道一點點,相對于別的算法它通過物理延時和鏈路帶寬瓶頸來主動的探測,尋找合適的發(fā)送速度和發(fā)送量。
那quic知道嗎?
知道一點點,谷歌出的基于udp的傳輸協(xié)議,主要是因為tcp有很多限制,udp比較輕量,因此基于udp自己再實現(xiàn)可靠性等。
不錯,我看你還寫了對redis 蠻熟的那來問問你redis吧?先說下都有哪些結構吧?
string、hash、list、set、zset
這個string 底層是怎么樣的知道么?
是動態(tài)的,相對于c語言的string可以常數時間獲取長度、能自動擴容并且惰性刪除和二進制安全。
那redis 的hash擴容過程知道么?
字典有兩個表,平時用一個,當擴容的時候在每次添加刪除的時候順帶移一個槽去新的表,直到擴容完畢。在查找的時候先去老的找,找不到去新的找。
那rdb和aof有什么區(qū)別?
rdb是將數據庫快照以二進制形式保存,aof的文本方式追加每次寫入的命令。
redis集群是如何訪問的?
客戶端是先往集群中的一個節(jié)點發(fā),如果命中直接返回,如果不命中,會返回moved指令,然后告知key所在的是哪個節(jié)點。
那redis是單線程的,為什么6.0版本還要引入多線程呢?
....額,這個我不太清楚。
行,說說AQS原理吧?
主要是通過cas一個狀態(tài),即state來判斷鎖是否被獲取,沒獲取到鎖的線程加入等待隊列中等待,還有條件隊列。再通過公平和非公平兩種模式來選擇喚醒線程。
說下線程池的處理流程?
任務提交,如果線程池數量還沒到核心數的話啟動線程來接這個任務,如果線程數已經到了核心數則任務入隊。如果隊列滿了則看是否超過最大核心數,如果超過最大核心數則看拒絕策略如果定義的,不超過則啟動新線程來處理這個任務。
這樣的線程池有什么不好的地方?
適合cpu密集型把,IO密集型的還是需要改造下,讓更多的線程工作起來,而不是優(yōu)先排隊。
那再說下啥呢,數據庫mysql吧,熟不熟?
就一般。
mysql like有什么需要注意的?
最左匹配原則,不然就走全表了。
mysql 為什么用b+樹結構,而不用哈希什么的?
主要是b+樹數據都存在葉子節(jié)點,然后非葉子節(jié)點就存了主鍵和指針,比較少,加載到內存中的數據更多,這樣查找數據磁盤IO次數少,并且葉子節(jié)點還是有序的適合范圍查詢,而哈希的話對于等值查詢來說很好,但是像范圍查詢啊就比較無力了。
差不多了來寫一道題目吧,生產者消費者。
就是實現(xiàn)一個生產者消費者,其實還蠻簡單的,不會像那種很難的算法,看著題目人都傻了,無從下手?;旧弦痪€搬磚應該都能寫出來。我雖然在家咸魚了兩個月但是還是會練練手的,因為刷劇刷吐了。
其實中間還問了一些我記不太得,都是某個問題的一些細節(jié)分支,這其實很考察你是不是真的懂了,不過問題大致方向就是上面我所陳列的這些。
最后
這來來回回大致一個小時的時間,總體而言我自我感覺應該還可以。主要是一面也都很基礎,也都沒扯到項目上,基本上有準備的人基礎扎實一些應該都有機會,面試官最后還對我說了可以的,嘿嘿。
怎么說呢,其實工作久了偶爾休休假,心態(tài)會不一樣。不過一般不建議裸辭,除非你很有自信,我是屬于那種心態(tài)比較好的,找不到工作我再咸魚著唄,那還能怎么辦呢?
像有些哥們一個星期或者兩個星期沒找到工作就很急,急了之后每天都難受,并且當有一個之前根本不太想去的offer之后,也會因為焦慮感而將就,或者一些待遇很差的offer也就去了,會比較被動。
這也是人之常情,焦慮感隨著時間越發(fā)膨脹,因此還是別裸辭,騎驢找馬還是很香的!
最后今年的行情確實差,我好幾個小伙伴都說難,這種情況其實茍著最好,咱先茍著,攢大招,多學點干貨到時候offer還不是手到擒來,而且一般而言面試好,進去起點高一些,比你進去再努力上去簡單些。
