人人網面試經歷

對於一年開發經驗的程序員來說是非常尷尬的,經過一個月的面試總結,也快入職心儀的公司了,差不多算是敲定了工作。所以想到陸續的放出一些互聯網公司的面試經驗來,雖然面不上,但是可提供給別人參閱,以便你們遇到類似或者同一家的公司能夠見招拆招!
首先需要說明的是,我能夠去人人網面試是通過一家外派公司作爲中介纔去的。這家外派公司叫做:北京銀河創想信息技術有限公司,在智聯投遞的簡歷,那邊的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集合框架的實現原理等等。即使問到框架,也問的很深層次的東西。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章