對於一年開發經驗的程序員來講是很是尷尬的,通過一個月的面試總結,也快入職心儀的公司了,差很少算是敲定了工做。因此想到陸續的放出一些互聯網公司的面試經驗來,雖然面不上,可是可提供給別人參閱,以便大家遇到相似或者同一家的公司可以見招拆招!
首先須要說明的是,我可以去人人網面試是經過一家外派公司做爲中介纔去的。這家外派公司叫作:北京銀河創想信息技術有限公司,在智聯投遞的簡歷,那邊的HR打電話通知我週三上午去面試,去以前我百度了這家公司,搜索引擎給的結果是這家公司與「培訓機構」、「不正規」等字樣聯繫起來,當時我心是懸的。不過想到不如虎穴焉得虎子,因而就去了。我暫且把銀河創想的面試過程稱爲一面吧!html
進了公司以後,看到裏面已經來了好幾個來面試的人,遞交簡歷以後被安排到一臺筆記本面前,總共有五道題目,不許百度,不能交頭接耳。他們有一套本身的評分方式,有本身的輸入輸入用例,有點像OJ題目,限時30分鐘。判分60分以上就能進入面試,不及格就不能進入面試,只好走人。
五道題分別以下:程序員
1.結合金融業務,實現轉帳過程,從帳戶A轉到帳戶B,注意金額不能爲負數。面試
public class User{ private String name; private int blance; //getter/setter方法 }
這道題要作的幾現實它的一個計算方法,上面提供了JavaBean,題目代碼貌似以下:正則表達式
/** * * @param blanceFrom 借貸人 * @param blanceTo 借款人 * @param blance 借款金額 */ public static void execute(User blanceFrom, User blanceTo, int blance) { }
這道題不難,須要注意的是判斷空指針異常和blance非負數,因此這裏我就不提供參考代碼了。
2.迴文數問題。我感受這道題描述有問題,按照個人理解是寫一算法判斷是否爲迴文數。可是題目卻說好比1221,1234321等都不是迴文數,我一臉蒙逼,問面試官是否是題目描述錯誤了。面試官十分確定的回答我:題目沒有錯,會作就作,不會作的能夠跳過。
本題我直接跳過,不過我解題思路是先把原字數賦值到新的變量,不斷的對原來的數字對10取餘,而後數字自己除以10,直到該數爲0爲止。算法
public boolean isHuiWen(int number) { int oldNumber = number; int newNumber = 0; while(number != 0) { newNumber = newNumber*10 + number%10; number /= 10; } if(oldNumber == newNumber) { return true; } return false; }
3.統計句子中每一個單詞出現的次數。好比以下句子中數據庫
Java this is a Java Hello World Thank you編程
本句子中,各單詞出現次數以下:設計模式
"Java"出現2次
「this」出現1次
「is」出現1次
「a」出現1次
「Hello」出現1次
「World」出現1次
「Thank」出現1次
「you」出現1次數組
空格不進入統計裏邊。這道題用Map的數據結構來作最適合,Map是一種key-value的數據結構。首先用正則表達式將句子切割成String數組,而後遍歷這個數組把第i個元素的值做爲Map的key,出現次數做爲value,當第一次存入key時value等於1,不然value+1。tomcat
public Map<String, Integer> wordCount(String sentence) { String[] strs = sentence.split("\\s+"); Map<String, Integer> wordMap = new HashMap<String, Integer>(); for(int i = 0; i < strs.length; i++) { if(wordMap.get(strs[i]) == null) { wordMap.put(strs[i], 1); } else { wordMap.put(strs[i], wordMap.get(strs[i])+1); } } return wordMap; }
4.將阿拉伯字母轉爲漢字。好比123轉爲一百二十三。
這道題當時作不出來,之前見過次題,不過沒有看別人是怎麼解決的,因此這裏貼出別人的博客地址:Java實現中文數字轉換爲阿拉伯數字
5.這道題贊記不起來了。
總共五道題目,當時四道題有思路,包括忘記的第二題。只有第4題阿拉伯數字轉漢字作不出來,半個小時到的時候,面試官過來問我作的怎麼樣了,我說「差很少了」。她運行了一下測試用例,52分。有一些額空指針異常和有些案例沒有經過,她說能夠給我延時,再調試一下程序。在調試的過程當中,有些哥們也提交了答案,其中兩個哥們就喊直接走人。通過10多分的修改,面試官再次來問我結果,她再次運行測試用例,恰好60分。
就這樣進入了面試,面試主要問我上一家爲何離職,期待薪資,有沒有女友,她在哪裏工做之類的話題。在面試過程當中,我好奇的問面試官,爲何迴文數那個例子說給的例子是非迴文數?我記得之前在學校學編程的時候,教科書的迴文數概念就是那些數字啊!
面試官:它指的的案例本身定義的那些是非迴文數!
我一臉疑問,想一想也許面試官也不懂技術!因此也別再糾纏了。這時候面試官提出了最關鍵的問題:咱們外派到其餘辦公地點辦公,這點你接受的了麼?
我:外派到北京仍是外地?那麼工資之類的是哪家公司發?...
從面試官那獲得的答案是:外派到北京本地,薪資由銀河創想結算。通常都會有開發任務的,就算沒有開發項目了,他們會喊我回來總部,有五險一金!
雖然在網上聽到外派各類門道多,可是沒辦法,先口頭答應吧!
就這樣我順利進入到二面。剛面完回來的路上,接到一家事業單位的面試通知。雖然是事業單位,但確實合同編制。我在微信跟銀河創想HR說能不能把二面推到週四,由於週三另有安排,HR不回覆,內心沒底,並且當時HR沒有說外派到人人網,因此內心對二面期待不高。
週三早上去了中關村人才市場,冷冷清清。下午去那家事業單位面。週三成天都沒收到銀河創想HR發來的面試安排,我不知道她有沒有同一週四再去面。反正週四我也有兩家公司面試安排,坐地鐵去面試的路上,剛下地鐵。微信收到銀河創想HR發來的信息,說:今天下午去人人網那面試,把地址和前臺號碼都發過來給我。她再三叮囑:必定要咱們幫你改過以後的簡歷,不要以前的簡歷,我內心有非常奇怪。
那時候已是午間10點多,太陽正火辣呢,我得找家打印店看看。簡歷打印出來了,我終於知道爲何他們強調要上交他們修改事後的簡歷了。由於這份簡歷是通過包裝以後的。首先把個人年齡縮小了2歲,再次把個人畢業時間提早一年,只有一年工做經驗的我瞬間有了兩年的工做經驗!
心想:這樣不會被戳穿麼?
微信問HR,HR說不要緊的。心想也對,方正我是外派過去的,又不是人人網僱傭的我,沒有和人人網發生勞務關係,簡歷造假應該沒什麼問題的!
面試地點是在朝陽區酒仙橋分公司。首先填寫信息表,其次給出一張邏輯思惟題目,題目如圖,在該圖的基礎上沿上下左右延展,不許修改本圖的基本架構,畫過以後不許塗改,時間限制爲12分鐘。
寫完我的信息,上交了思惟題目的答案以後,面試官出來了。本來預定2點的,見我來的早了,面試官仍是有點意外的。自我介紹以後,接着是以下的技術面試:
上訴的技術面當時答的不是特別好,有點自認爲答的能夠,有的答的很差,尤爲是HashMap的底層不太熟悉很讓本身吃虧。可是回來都作過一番溫習。原本想寫一寫這些題目的解析的,可是把這個任務跑給讀者去作吧!
面了幾家的互聯網公司,首先互聯網薪資高,可是技術要求也高。好比他們都比較偏向於問基礎。啥是基礎?就是數據結構和算法,Java集合框架的實現原理等等。即便問到框架,也問的很深層次的東西。