面試小結:ZTE/CVTE/JD

CVTE/ZTE/油坊橋乞討相關

第一點,這並不是一篇傳統的面經,而只是我最近幾天的一些見聞,思考和技術上的一些小結以及展望。如果要看面經直接下拉至下面的技術展望部分。

一個很好的點子或者一個方案,在沒有經過市場的試煉之前,一文不值。而且,新穎的點子並不稀缺,缺少的是培養這個點子的土壤,支持這個點子的韌勁和與其他類似點子博弈的腕力,當然還有,資金。理想很豐滿,現實很骨幹很真實;心有猛虎細嗅薔薇在特定環境下,是一種諷刺;當你有一個想法的時候,不要在腦海裏檢驗它有效與否,而應該着手去做,讓事實和結果來對你的想法做出評判。比如,昨天的乞討–一個城市生存活動,沒有啓動資金沒有認識的人沒有你需要的資源,然後在有限的時間要賺到午飯錢,回去的車費以及最終團隊比拼需要的儲備資金。在沒有真正的融入到這個活動中,我想過各種各樣的賺錢方法,但是當你切身去體會的時候,那些方法都是扯淡。

幾場面試的過程下來,那套說辭無異於嚼甘蔗了,缺乏感染力。當務之急,擴充簡歷內容,具體包括:擴充實習項目的內容,重做項目介紹,平衡前後端,橫向增加,重貼照片。

在ZTE面試的過程中,前一位奇女子的對答入流令我佩服。
面試問“你的職業規劃是什麼”
她“首先第一年剛大學畢業,要完成從學生到職業職場人的身份轉化,所以入職第一年我希望自己能夠儘早熟悉公司的業務,流程,儘快掌握公司需要的技術,完成身份轉變;然後前三年,我希望自己能夠在技術不說成爲整個技術團隊的核心,但是至少能夠成爲這個團隊中不可或缺的一員,也就說不是成爲一個可有可無的人物;然後之後七八年我希望自己能夠方方面面都有所接觸,包括管理,銷售等,然後選擇一個自己真正擅長的領域去開疆拓土”
之後還問到了“如何看待按勞分配”“自己在這個項目中遇到的困難”“用英語簡單介紹一下xx”等一些問題。她的回答內容充滿充實,有層次,有條理,充滿了自信但是又不會讓人覺得刻意炫技和咄咄逼人。在她開始面試之前,我和她有過一個短暫的交談,在整個不足5分鐘的對話中,她只是一個戴着牙套身高很萌愛笑的簡單女生。與她之後面試時候的能進能退,收放自如,目標清晰,對答如流的形象對比明顯。回去的路上,我回想起她,發現她其實和我身邊的一些朋友同學ZY WXY ZZY等一樣,有相同的特質。他們都內斂,不卑不亢,不會刻意的炫技,會迎合你,讓你覺得和他聊天是一件愉快的事;當要爭取或者競爭時,他們又能夠釋放出強大的力量;他們從不把自己主動的放在一個領導者的位置,但是卻一直都幹着領導者的事。這種內斂不卑不亢而又充滿力量和學識的人格特質,或許是中國當代中最受推崇的一種,就如同外國都喜歡那些自信熱愛自由擅長社交的人一樣。

在談那個乞討活動–“城市生存”。最後總結的時候說到一句話,“你們今天遇到的事,你們做出的選擇,就是十年之後你在面臨類似情況時,在職場中或者一個創業團隊中,會做出的選擇”;聽到這句話,我恍惚回憶起加拿大的朋友YZF,他在出國前積極樂觀,愛笑(時常被女孩子吐槽笑點低),喜歡一些男孩子熱愛的酷酷的東西(街舞吉他比box),充滿愛心,偶爾會有一點小情緒,稍微有點缺乏主見。出國三年之後我在遇到他,他身上那些特徵如同早已深深根植於他命運中一樣,他並沒有產生我所期望的,一個完完全全陌生的環境所帶來的,翻天覆地的變化;甚至一點明顯的變化。這不是我希望我看到結果,這是我今晚深夜在這寫博客的原因。

一個小插曲,ZTE綜合面試的面試官給我提過一個問題:現在給你300-400萬,讓你去創業,你會選擇那些領域?這個問題我之前曾幻想過多次,但是當這個問題被真實的拋在自己面前時,我卻一時語塞。回想當初無數壯志凌雲一覽衆山小的景象,這一刻卻變得模糊起來。或許,許多年之後的某一天,我會抱起面前的電腦,仍在地上摔個粉碎,說“老子受夠,時間不多了,我得去做點瘋狂的事”。

展望:技術相關JD/ZTE/CVTE

最近剛經歷了JD ZTE CVTE三家企業的面試。橫向來看,CVTE和JD的技術面試難度都不大,ZTE一面也一般般能很好應付,但是ZTE二面真是我遇到過最刁難人的面試了。一一來說吧:

CVTE

面試官:簡單做一些自我介紹吧。
me:巴拉巴拉
面試官:我看你簡歷參加了不少社會實踐活動啊,從你簡歷上挑一個你熟悉的講一下吧
me:巴拉
面試官:好了我不想了解太多業務上的東西。來我們寫個程序吧(說着面帶微笑的給我遞了一張白紙)
程序是字符串中提取高頻詞彙的,不算難,我用了兩種辦法解決了,一是兩層循環暴力全遍歷,二是字符先排序,然後提取相同字符的長度。
面試官(看了會程序):你這個程序返回的值在哪?
me:這,就是這個res,上面設的int值。
面試官:只返回一個int嗎?萬一有多個值呢
me:可以在我之前問過你是不是隻返回top數量的字符的
面試官:top數量的字符也…
me:哦哦,知道了。這個我這個程序也可以改進,然後巴拉巴拉
面試官:好的。那麼現在我接着來問吧,(微笑着又遞給我一張紙),畫一下Exception的類繼承圖吧
me:(這個是有點印象,但是真記不得了啊)
這裏寫圖片描述

然後寫了幾個自己熟悉的異常,包括indexOutOfBoundsException,RuntimeException;
面試官:知道OOM?
me:???
面試官:OutOfMemoryEorrro。
me:知道,內存溢出了。
面試官:在什麼情況下會出現OOM,或者OOM背後的機理是什麼?
me:類的新建對象都是存儲在堆中,如果堆中對象過多就會觸發OutOfMeroryEorr,比如在一個死循環中一直new新建對象。


OOM的官方說明: Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector.

出現OOM的兩個原因:
1.內存泄漏。申請使用的內存沒有被釋放
2.內存溢出。申請試用的內存過大,超過提供值

OOM的類型(一般而言java的四塊內存區域:堆,虛擬機棧,方法區(除了程序計數器之外),和Native棧都可能出現OOM)
1.java.lang.OutOfMemoryError: Java heap space ——>java堆內存溢出,此種情況最常見,一般由於內存泄露或者堆的大小設置不當引起。對於內存泄露,需要通過內存監控軟件查找程序中的泄露代碼,而堆大小可以通過虛擬機參數-Xms,-Xmx等修改。
2.java.lang.OutOfMemoryError: PermGen space ——>java永久代溢出,即方法區溢出了,一般出現於大量Class或者jsp頁面,或者採用cglib等反射機制的情況,因爲上述情況會產生大量的Class信息存儲於方法區。此種情況可以通過更改方法區的大小來解決,使用類似-XX:PermSize=64m -XX:MaxPermSize=256m的形式修改。另外,過多的常量尤其是字符串也會導致方法區溢出。
3. java.lang.StackOverflowError ——> 不會拋OOM error,但也是比較常見的Java內存溢出。JAVA虛擬機棧溢出,一般是由於程序中存在死循環或者深度遞歸調用造成的,棧大小設置太小也會出現此種溢出。可以通過虛擬機參數-Xss來設置棧的大小


面試官:知道其中那個類共同繼承於Exceprion和Erro的嗎
me:runtimeException(猜的)
這個我是有印象的,在第二版的《瘋狂java講義》中提到過,但是我現在到網上查到第一版中查都沒查到,回宿舍在看看《java核心技術》,看有沒有
……
面試官:講一下左連接和右連接吧
me:左連接保留左表匹配右表,右連接保留右表匹配左表(這個問題在jd面的過程中又問了一遍)


1.SQL LEFT JOIN 關鍵字

LEFT JOIN 關鍵字會從左表 (table_name1) 那裏返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。

2.SQL RIGHT JOIN 關鍵字

RIGHT JOIN 關鍵字會右表 (table_name2) 那裏返回所有的行,即使在左表 (table_name1) 中沒有匹配的行。


之後還問了些不痛不癢的就結束了,最後掛了。隨意,反正它是焊電視板的(不是純粹的互聯網公司),反正不想去廣州

ZTE

面試ZTE那早拉肚子,而且沒睡好在地鐵上差點睡過站。這是前提。
漫長的等待之後開始了技術面
面試官(一個慈祥的大叔和一個年輕小夥):這個簡歷紙張不錯嘛
me:還行,彩色打印的
面試官:做一下自我介紹吧
me:balabala
……
面試官:成績不錯啊,前30。英語不錯啊,英語專業的嗎?做過的項目挺多的嘛
me:恩,還行。沒有啦。謝謝
一面沒有爲難我,輕鬆過了

二面開始之前,坐在門口聽着裏面的學姐高談闊論,真的長見識。
我進去坐定
面試官(一個女的,幹練且強勢型,一個大叔,技術型):不好意思讓你久等了,簡單做一下自我介紹吧
me:巴拉巴拉(此時已經有點疲憊了)
之後讓我介紹了一下項目
面試官:你這個項目的數據是採集的嗎?
me:不是,是手動輸入的,因爲客戶給我們的需求沒有提到自動採集,所以我們也不會自己改動
面試官:數據庫用過吧
me:用過,瞭解Mysql
面試官:會做mysql的分佈式嗎?
卡殼中……
面試官:不會,沒關係,會使用mysql調優嗎?就是改動mysql的一些語句,讓它更夠更高效的進行查詢。
me:由於我們這些項目都是一些數據量不是很大的項目,所以並沒有進行mysql調優的必要,所以也沒有做


mysql21條調優實踐地址–>
這種知識點碎片還是讓人看得模棱兩可,去完成《mysql》的內容,以獲得一個系統性的知識


面試官:假如現在給你300/400萬讓你去創業,你會選擇在什麼方向或者什麼領域發展
me:卡殼一會,我沒有想過這個問題(尷尬笑),之後補充說會選擇一些熱門領域,因爲一頭豬就算處在風口上也會飛起來
面試官:你在學習或者項目中有過什麼幫助別人的經歷嗎?
面試官:你有沒有想過當你幫助了別人之後,他可能會獲得一個比你更好的績效
面試官:你在你成長的過程中或者在項目的過程有沒有遇到什麼巨大的挫折?
面試官:那麼你從這個過程中學到了什麼?
面試官:假如領導給你派發一些你之前並不熟悉的領域的任務,你會怎麼辦?
面試官:你熟悉算法嗎?假如上級要把你調到一個研究算法的部門,而且這個部門中的人,都要比更精通這個領域,你會怎麼選擇?
面試官:來用英語介紹一下你在身上的一個缺點吧,然後順便講一下你是怎麼一步一步克服它的。
我具體的答案就不羅列,答得很不好,前後矛盾,而且創業那就是個坑我還往裏跳了,最後英語的介紹也跟楞半島的。

總結來看,英語介紹前最好先組織好語言,不要張口就來,先想清楚要說什麼。mysql瞭解不夠深入,分佈式實現mysql可以瞭解一下。做一個長期的規劃。

JD

jd是遠程電話面,問得相對基礎,還算順利
面試官:簡單做一下自我介紹
我:巴拉巴拉
面試官:我看你做過不少項目,挑一個你最熟悉的談一談吧
我:balabala
面試官:你在這個項目中遇到的一個技術上的或者業務上的難點談一談
我:我們這個項目的數據本來是想要通過探測器自動獲取的,並且客戶也是這樣想的。所以我們在早期實現的時候,是按照探測器的模式來實現的。但是這其中有一個很大的問題是,客戶並沒有真正的硬件,也就是說他們並不知道要採集的數據有哪些,所以導致我們的底層數據庫都沒有辦法設計,最後我們只能給他們的探測器錄入數據留一個接口,然後通過人工錄入的方式來實現了功能。
面試官:你是學java的對吧?接觸多久了?c c++瞭解嗎?恩,你的第一志願是成都啊,可我是北京的,如果你要去成都還得讓成都那邊的人來面試你。
我:我可以接受調劑,就是成都是第一志願,其他的也可以接受。對我主要做java開發,c c++只是瞭解。
面試官:那麼問點java相關的吧。java要怎麼退出多重循環,switch語句可以適用的類型有哪些?左連接和右連接是什麼意思?算法知道吧?歸併排序和快速排序有什麼區別?
我:java通過break to退出多重循環,前提是要在循環外設一個標記位置。switch語句應該都可以適用(這個真不知道)。左連接和右連接,一個是保留左表去匹配右表,一個保留右表去匹配左表。知道,快排和歸併時間複雜度都是log(n),但是快速排序還適用於整個序列比較混亂的情況下。
之後他深究了一下switch,又問了幾個簡單的問題也就結束了,這輪應該沒問題


1.退出多重循環:在循環爲價格標示(例如:outer)然後break outer就行
2.
2.1. byte、char、short、int四種基本類型以及它們的包裝類(需要Java5.0/1.5以上版本支持) 都可以用於switch語句。
2.2. long、float、double、boolean四種基本類型以及它們的包裝類(在Java所有版本中) 都不能用於switch語句。
2.3. enum類型,即枚舉類型可以用於switch語句,但是要在Java5.0(1.5)版本以上才支 持。
2.4. 所有類型的對象(包括String類,但在Java5.0/1.5以上版本中,該項要排除 byte、char、short、int四種基本類型對應的包裝類)都不能用於switch語句。

3.歸併和快排本質都是分治的思想
歸併是將範圍縮小到一個不能再縮小的範圍,然後依次比較合併比較合併,最後得到有序數組
快排是通過每次都將一個數字放在正確的位置,然後在這個數字前後再將一個數字放在正確的位置,依次下去,直到得到數字前後不能在分時就得到了有序數組
對比來看,快速排序最好情形的時間複雜度爲O(NlogN),最壞的情形爲O(N*N),平均時間複雜度O(NlogN)。
歸併排序最好情形的時間複雜度爲O(NlogN),最壞的情形爲O(NlogN),平均時間複雜度O(NlogN)
但是歸併要多用到logN的空間,並且實際使用上,快排也要比歸併更快


以上
下次會更好

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