人人網面試經歷


對於一年開發經驗的程序員來說是非常尷尬的,經過一個月的面試總結,也快入職心儀的公司了,差不多算是敲定了工作。所以想到陸續的放出一些互聯網公司的面試經驗來,雖然面不上,但是可提供給別人參閱,以便你們遇到類似或者同一家的公司能夠見招拆招!
首先需要說明的是,我能夠去人人網面試是通過一家外派公司作為中介才去的。這家外派公司叫做:北京銀河創想信息技術有限公司,在智聯投遞的簡歷,那邊的HR打電話通知我周三上午去面試,去之前我百度了這家公司,搜索引擎給的結果是這家公司與“培訓機構”、“不正規”等字樣聯系起來,當時我心是懸的。不過想到不如虎穴焉得虎子,於是就去了。我暫且把銀河創想的面試過程稱為一面吧!

一面

進了公司之后,看到里面已經來了好幾個來面試的人,遞交簡歷之后被安排到一台筆記本面前,總共有五道題目,不准百度,不能交頭接耳。他們有一套自己的評分方式,有自己的輸入輸入用例,有點像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。

	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點的,見我來的早了,面試官還是有點意外的。自我介紹之后,接着是如下的技術面試:

  1. 集合框架了解么?HashMap和Hashtable的區別?
  2. HashMap實現原理?Hashtable線程安全是怎么現實的?
  3. 能講講HashMap的put()操作過程么?
  4. Spring中Bean的生命周期
  5. Spring如何管理事務的?
  6. Service層是單例還是多例的?是線程安全的么?如果要做成多例的如何實現?
  7. 事務的傳播性,數據庫的隔離級別?
  8. static可以被繼承么?static在哪里地方會用到?
  9. ArrayList和LinkedList的區別,為什么說ArrayList是線程安全的?
  10. 如何配置服務器(tomcat)的內存大小?
  11. 說一說Servlet實現的接口?
  12. 項目中常用的設計模式有哪些?寫一個單例模式?

上訴的技術面當時答的不是特別好,有點自認為答的可以,有的答的不好,尤其是HashMap的底層不太熟悉很讓自己吃虧。但是回來都做過一番溫習。本來想寫一寫這些題目的解析的,但是把這個任務跑給讀者去做吧!

面了幾家的互聯網公司,首先互聯網薪資高,但是技術要求也高。比如他們都比較偏向於問基礎。啥是基礎?就是數據結構和算法,Java集合框架的實現原理等等。即使問到框架,也問的很深層次的東西。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM