在面試面談過程中,總是會被問到一些基礎性問題。如Java面試經常會問到下面這類基礎問題:
能否談一下,悲觀鎖和樂觀鎖?
能否談一下,線程池?
能否談一下,hibernate二級緩存?
hashmap?
……
Hibernate、線程池等這些基礎知識,以前培訓、看書的時候都學習過,在學習的過程中也寫過demo,當時感覺也理解、記住了,但是,面試的時候,問到這方面問題,還是說不清楚、答不好,有些細節方面的地方忘記了。面試的時候,有些基礎題也能回答,但面試官再往深層次的追問幾個問題,就答不上來了。
在準備面試的時候,這類基礎性的問題還非常的多,網上就有些牛人收集幾千道題(Java面試題1000道),還附有答案。
但個人感覺僅僅看懂、背會這些題目的答案是肯定不夠的,這經不起面試官的追問。可如果一個個題目深入下去研究、去理解原理,上千道題目這樣的數量,又會讓我感覺到時間不夠用。
我想問:在面試的時候,怎麼高效準備這類基礎性問題?
很遺憾,基礎知識類問題的準備,我不知道有什麼輕鬆、快速、高效的法子,如果你找到了,回頭來告訴我啊。
我接下來說的,都不輕鬆,可能閱讀過程中感覺會沒那麼舒服,但這些策略,都是行之有效的,願意挑戰的話,就做好準備開始吧。
1、結硬寨打呆仗
基礎概念性的問題,往往是有參考答案的,有對錯的。比如面試官問你“哪些容器是線程安全的”、“final在Java中有什麼用”,答案基本就是固定的。
這一類問題,和我們上學時複習考試,道理差不多,想要很好的答出來,最基本的方法,是下面這些:
- 複習知識點
- 看面試題解析
- 刷筆試題
這些是笨功夫、硬功夫,跳不過去的,得紮紮實實做。這就好比考試,學期開始學的東西,期末時,肯定要走一遍複習流程,用各種方式反覆理解、記憶。
2、三大策略提升準備效率
當然準備基礎概念題目時也有一些優化策略,比如:
- 80/20法則
- 關聯記憶
- 互動演練
80/20法則用在這裡,意思是,挑出最常被問到的那些題目,花更多功夫去記憶、練習、問答演練。比如你可能看到了1000多道題,但實際上只有200道經常被問道。
關聯記憶,意思是,把不常用的知識點和你經常用的知識點,想辦法關聯起來,以熟悉來索引陌生。比如,你用過HashMap,HashMap是非線程安全的,那從這個點出發,就有兩種關聯方法,1)非線程安全的容器還有哪些,就可以找到WeakHashMap、TreeMap等等,2)線程安全的容器有哪些,就可以找到HashTable、Vector、ConcurrentHashSet等。
一旦知識點彼此之間關聯起來,記憶就會很快,複習也很快,因為牽一髮就可以動全身,從任意一個熟悉的知識點出發,就可以拎出一串來。
互動演練,指的是找個人向你提問,彼此來回問答。這種方式有兩個好處,一是與面試場景像,可以練場感;另一個是演練對手熟悉的知識點和你不一樣,他問的點和順序,往往和你預期的也不一樣,這樣就能打通那些你因為不熟悉而下意識迴避的知識點。
3、深入一層關注如何應用
知識類問題,面試時常會遇到兩個層面的提問:
- 某某是什麼,比如悲觀鎖是什麼、樂觀鎖是什麼
- 某某的應用,比如什麼場景下用悲觀鎖,具體怎麼用,舉個例子
所以你單單記憶知識點,還不夠,還要考慮這個知識點在項目中的應用,問問自己下列問題:
- 它是怎麼用的
- 為什麼這麼用
- 為什麼不那麼用
- 用了之後有什麼效果
對於那些你經常在項目中用的知識點,“應用”這個環節,你按上面的問題清單回顧一下,反思一下就能心中有數。
對於你僅僅知道但很少在項目中用的知識點,除了按照書上或者別人總結的應用經驗瞭解外,也可以挑常被面試官提到的知識點做做小練習,然後再結合上面的問題清單反思它是怎麼用的。
4、你的付出必定是值得的
求職找工作是大事,對你的職業發展、經濟收入、生活狀態,都有非常非常大的影響。這麼重大的事情,值得認真對待,值得投入時間和精力。
假如時間不夠用,是有方法可以擠一擠的,比如早上早起1個小時,下班路上看看、聽聽,晚上吃飯快一點,少刷會手機……
想想看,要是你努力準備了兩個月,獲得了理想的Offer,進入了一直想去的公司,月薪增加了50%,是什麼感覺?
那時你一定會感謝你現在的付出,你會覺得,一切都是值得的。
退一萬步講,就算你這次為這家公司的準備,沒能收到效果,但你的付出,讓你鞏固了的知識、結構化了體系,也是值得的。同時,你這次準備的基礎知識,面試下一家公司,也很可能用得上,努力並不會白費。
你看,無論如何,你的付出,都是值得的。請相信,你在今天所有的投入,就是你深埋地下的一粒粒種子,時候到了,它們必將發芽,生長,與你一起綻放。
閱讀更多 洛陽課工場小山老師 的文章