原創:小姐姐味道(微信公衆號ID:xjjdog),歡迎分享,轉載請保留出處。java
庚子年庚辰月,狂風肆虐,飛沙走石。似在風中藏了把刀子,砍翻了我頭頂的連衣帽。程序員
今天等來了久違的面試。在個人印象裏,面試就是要面對面的。由於疫情的緣故,過去幾周我經歷了太多的視頻和電話面試,老是涼涼。想到一本正經的面試官,下半身可能藏在被子裏,或者蹲在馬桶上,我就滿臉的不自在。面試
主要仍是由於我沒法展現本身的風采,這讓我非常苦惱。因此今天抓住機會,我要好好的表現一番。算法
車行飛快,繞城半圈。結帳付款,一鼓作氣。我低下頭,用手遮住屏幕看了下地圖。心說:到了老弟,接受個人蹂躪吧。設計模式
我抄着口袋擠進電梯,不當心蹭到旁邊的姑娘。她一臉厭惡的側過身子,生氣的劃拉着本身的手機屏幕。爲了在面試前保持美麗的心情,我自動將其忽略。數組
我是xjjdog,別的不會,代碼很牛。搞了10年JAVA,組的都是關鍵零件。多的時候,也有四五十號人,喊我一聲牛總監
。微信
作完自我介紹,坐在我對面的面試官一臉平靜,沒有任何表情。但我知道,他的心裏必定在震顫,正在搜腸刮肚的找問題,來挫挫個人威風。架構
我向來是不吃這一套的。它強任它強,清風拂山崗。它狂任它狂,明月照大江。併發
就在我一愣神的時候,他刷刷刷在白板上,寫下一段代碼,讓我分析一下最終的結果是啥。分佈式
我瞪大了眼睛一看,只見白板上,有這麼個東西。空格還貼心的給我標註出來。
int a = 2;
int b = a++ << ++a + ++a;
System.out.println(b);
複製代碼
我一看就頭大了。最怕這種不加括號的炫技代碼,它一般會帶我回到痛苦的學生時代。
你應該把主要計算邏輯用括號擴起來,這種代碼幾乎無法閱讀。我建議說。
他看了我一眼,沒有言語,刷刷刷,加了幾個括號。我定睛一看,驚出一身冷汗。
int a = 2;
int b = (a++) << (++a) + (++a);
System.out.println(b);
複製代碼
我心想你耍我不是?這括號加和沒加有什麼區別。我嘗試着去推導這個過程,越分析越心驚。
面試官看出了個人窘境,他露出了久違的笑容。
我能夠直接告訴你結果,是個整數,他的聲音彷彿來自遠方,結果就是1024
,你能夠根據結果分析一下怎麼執行的。
親愛的同窗們,大家也不妨反向分析一下。這個問題很是的刁鑽,就連我如今平心靜氣的分析,都要花費很長時間。在當時劍拔弩張的形勢下,在面試官死死盯着你的時候,個人腦子一團漿糊。但個人自尊不認輸,因此我嘗試着從不一樣角度去倒推。
當時我就想。1024
是2
的10
次方,但不管怎麼進行分析,都不會獲得這樣的結果。短暫的思考以後,我認輸了。
咱們日常不會寫這樣的代碼,一段的沉默以後,我只好拿出殺手鐗,在咱們代碼review的時候,會盡力避免這種模糊不清的代碼書寫方式,這也是咱們治理的重點。
面試官笑的更開心了,露出了整齊潔白的牙齒。他對個人回答很是滿意。
我指望着他能聊一些比較高級的話題,好比分佈式、事務、架構思想方面的問題。結果他一直在和我聊一些具體的實現方式。好比老掉牙的HashMap的底層結構,String的hash算法裏,31
是什麼意思,何時會用到紅黑樹。
我告訴他,31
是測試以後機率統計的結果,也是一個比較合適的質數。至於紅黑樹,它對咱們理解和解決問題,並無什麼大的幫助,由於JDK8
以前都是用的數組加鏈表,也沒見哪些牛逼人物瞎BB。怎麼JDK8一發布,就弄的和聖經同樣?
聊了這麼多不痛不癢的東西以後,我彷彿虛脫了。
對方好像特別喜歡一些死記硬背的冷門知識,或者是一些Java老版本里是真理,新版本里被推翻的知識點。隨着時間的流逝,面試官臉上的笑容也愈來愈美麗。他彷彿成了一隻吃人的老虎,張開了血盆大嘴。
能問到這些東西,證實面試官也是很是的博學,若是我日常不是多看了一些xjjdog的文章,或許就被他給唬住了。
你用過設計模式吧。Java的單例,雙重檢查,能分析一下麼?
聽到這裏,我再也壓制不住心中的怒火。
雙重檢查,已是一個反模式,sonar
甚至專門有規則去分析。咱們日常應該儘可能避免去這麼寫代碼,分析這東西有什麼用?
**你不分析一下,怎麼知道是反模式?**面試官不依不饒。
我以爲雙方應該都須要冷靜一下。同時,我也認識到雙方之間深深的鴻溝。
這個問題我不太懂。您能給我普及一下麼? ,我終於認慫了。
他呆呆的看了我幾秒,應該是沒料想到我會有這樣的問題。
我向來忍受不了尷尬的沉默。我捂着肚子,說:肚子有點不舒服,我能先去一趟廁所麼?
他幾乎是瞬間,點了點頭。
我穿過噪雜的辦公室往廁所走,看到一個工位上,電梯遇到的小姑娘,正在恭恭敬敬的聽着旁邊一個禿頂大叔,向她咆哮。
這些年輕人啊,向來沒有憐香惜玉的情操。
我是真憋急了。找到廁所,寬衣解帶開閘放水一鼓作氣,頓感無比的舒暢。
電梯就在廁所旁邊,違背風水的設計。
剛走下幾個匆匆趕來上班的員工,我側身而入。從電梯緩緩關閉的縫隙中,映射出了我尿遁的事實。
做者簡介:小姐姐味道 (xjjdog),一個不容許程序員走彎路的公衆號。聚焦基礎架構和Linux。十年架構,日百億流量,與你探討高併發世界,給你不同的味道。個人我的微信xjjdog0,歡迎添加好友,進一步交流。