金三銀四面試總結(jié)
自己已經(jīng)畢業(yè)有三年多了,這三年來一直在一個大公司的體系里面工作,從大概去年的這個時候自己就有一個念頭,那就是去一個大平臺,去一個身邊的人都知道的公司,不僅僅是北京的朋友,包括老家的朋友和農(nóng)村的父母。其實更多的是為了對得起自己所從事的這個行業(yè),當以后回想起來的時候最起碼自己去過某某大平臺,說起來也牛逼哄哄的。所以大概從去年的這個時候開始就做準備了,包括買一些書籍,平時沒事就看看,在公司完成自己的工作之余就研究一下公司用到的技術,在上下班或者沒事的時候看看微信上那些技術公眾號所發(fā)的技術文章,開始了一點點的積累。過完年大概面試了四五天,拿到了幾個offer,其中就包括之前自己心儀的平臺。閑話不多說了,說說自己的面試經(jīng)歷吧!
自己面試的這個基本上技術面試都是三輪,當然也不排除個別只有兩輪加一輪的hr面試,大公司hr面試也是很重要的。三輪技術面試之前基本面試官都會讓你大概做個自我介紹,當然有些面試官不會主動要求你做主動介紹,但是你還是應該主動做一下自我介紹,這時候可以展示一下你的概述能力和全局野。
大概有如下:
1.有些公司要求是科班出身,所以如果自己是科班出生的話,最好介紹一下自己的學校,專業(yè),畢業(yè)時間
2.自己的工作經(jīng)歷,分別大概說出項目的目的,項目的價值,項目的功能,所用到的技術,自己所負責的任務等。
第一輪基礎知識:
1.java基本知識,包括反射,泛型,重寫,重載,裝箱,拆箱,Object類有哪些方法還有例如:String s1 = "abc";和String s2 = new String("abc");的區(qū)別等。
2.java中的結(jié)合,不僅要了解怎么用還要知道原理。比如ArrayList和LinkedList,HashSet和TreeSet,HashMap和HashTable以及ConcurrentHashMap,一般首先會問兩者的區(qū)別,如果你回答上來會接著問你原理,就這樣一層一層的問,直到你不會或者你回答的達到他的預想程度甚至還會讓你想一些辦法來優(yōu)化其中一些集合,比如如何降低HashMap的相率,當然也不排除更嚴重的,筆者去某團面試的時候就是首先讓手動寫一個HashMap。其中HashMap和ConcurrentHashMap是高頻,一定要會用并且熟知其原理。
3.就是多線程編程和鎖了,這一款也是非常重要的,一些大公司很看重的,尤其是對C的大公司,比如電商平臺。其中包括:synchronized的使用和原理,volatile的使用和原理,創(chuàng)建線程的方式有哪些,經(jīng)常用的join,yeild,Sleep,wait,notify,notifyAll方法的使用。鎖也會問道Lock的使用和原理以及和synchronized的區(qū)別,還有并發(fā)包里的countdownlatch的使用和原理,AtomicInteger的使用和原理,線程池的使用和原理,什么是CAS以及原理,ThreadLocal的使用和原理還有柵欄,線程返回值等。同樣很重要盡量要多知道,知道原理。
4.JVM雖然實際當中很少用,但是同樣很重要。比如JVM的內(nèi)存模型,什么是內(nèi)存泄漏,如何確定垃圾,如何回收垃圾,已經(jīng)有沒有在線上遇到過內(nèi)存溢出這樣的問題,你是怎么排查的。
5.框架的知識,比如Spring的AOP,IOC,事務傳播機制。
6,數(shù)據(jù)庫知識,一般的索引知識,如果是mysql的話用什么引擎,底層的數(shù)據(jù)結(jié)構(gòu)是什么,如何查看一條SQL在線上和線下的執(zhí)行效率。
7.中間件,zk的作用和原理,dubbo的使用和大概原理,redis的使用和原理,這些一般回答上使用和大概原理就可以了,如果能詳細說出底層實現(xiàn)原理那一定是加分項目,比如zk的paxos算法。
8.可能業(yè)委會問道http和https的區(qū)別和原理,以及tcp三次握手和四次揮手
9.可能也會問道設計模式的使用,其中就包括最出名的單例模式,一定要能手動在紙上寫出來。
10.中間可能會穿插著問你一些業(yè)務。
說明:如果這個過程被問道不會的有時候面試官會主動和你說答案,或者自己要下來查答案,但是一定要記住,因為很有可能第二輪或者下一家就會問道,切記!
第二輪基本原理:
基本也會問第一輪涉及到的知識的原理,但是很少會問使用了。這一輪一般會問一些場景知識,比如說現(xiàn)在要在同一個JVM加載同樣的兩個類該如何做到,比如現(xiàn)在一下來了大量請求,但是機器的吞吐量是100,你怎么限流降級等,這就要考驗你實際當中的經(jīng)驗或者平時看的一些書籍了。
第三輪場景知識:
會讓你介紹你做的項目,然后打斷你給你出題,還有也會出場景題目,比如經(jīng)典的紅綠燈問題。
最后hr面試:
有的人可能認為這一輪就不重要了,其實不然,尤其是大公司。你的認真程度不應該低于前三輪。包括你為什么要離職,以及你的規(guī)劃。
說明:
1.不會的東西下來一定要查!一定要查!一定要查!
2.尤其是去大公司或者說拿更高的薪資,一定要有特點,比如高并發(fā),jvm或者是中間件
3.說該說的話,比如面試官問你為什么學習java,這時候你正準備回答是因為錢,但是面試官搶先說是因為愛好吧,你這時候就不要非得說不是因為愛好是因為愛錢了。尤其是在技術面試的時候,當面試官主動回答或者已經(jīng)打斷這個知識點的時候,除非你對這個知識點很了解,可以繼續(xù)聊下去,否者你就不要再說一些沒用的東西了,因為很可能引起面試官的好奇,然后繼續(xù)追問,讓你直到出丑。
4.不要說前東家的不好,也要和前東家搞好關系,因為大公司都有背調(diào),而且不是走流程。
5.大公司最后給你定薪多少是根據(jù)你的面試情況,部門預算,你的以往流水來決定的,而且以往的流水很重要,很多公司就是在你以往的流水上加百分之三十左右,至于怎么應對,自己想招。
6.學歷很重要,基本上像樣的公司都要求是本科學歷,很多公司要求必須是全日制本科。
7.最后就是有些大公司要求一個人不能接受他們公司的多個offer,否則就觸犯公司紅線,可能被取消全部offer,其中就包括某東。
8.除非你很牛,一般人在面試之前一定還是要刷題的。
