目錄
離職跳槽
已從用友離職4天了。算是和平分手吧,公司不想養活新人了,而我也追求個人發展去了一個純正的互聯網公司。
離職的前一天晚上,有點失眠,當時心裏真的是五味雜陳。用友是我畢業後加入的第一個公司,部門同事之間的關係也非常的融洽,很照顧新人。在這樣一個互幫互助團結有愛的團隊中,短時間內我沒想過主動離職。不幸的是,所在的部門在2018年的編制大幅減少,部門面臨着變相裁員,而我就是其中之一。
清楚地記得,3月5號是個週一,開發例會結束後,部門老大找我談話,晦澀隱晦的言語之間透露出勸我離開的意思,並內推我去用友子公司去面試。聽到這個毫無預兆的消息,我一時都沒有反應過來,還以爲老大真的要給我介紹一個更好的發展機會。因爲前一天晚上我還在加班加點測試功能,確保週一能夠圓滿完成任務。明白談話的真實意圖後,當時真的很沮喪,以爲自己不夠努力,是被淘汰的哪一個。當天下午,我很明確的表態:不想去用友的其他子公司,想去外面找工作,拿到offer後主動離職。就此,給自己爭取了一個月的時間去找工作。這幾乎已經是宣佈我的第一份工作已結束,接下來部門不會再給我佈置任何的開發任務。
3月6號,我寫了一版簡歷,並在boss直聘和拉勾上註冊賬號。走上了“投簡歷-複習-面試”單曲循環的路。在此要非常感謝張永超同學給我的簡歷提了很多修改建議,真的非常感謝。
接下來我幾乎每天都在投簡歷,幾乎每天都能收到面試的邀約。由於急於想拿offer,沒有系統的複習就匆忙去參加了一個個面試。陸續死在了恆昌利通、網易、碧有信、衆薈信息、瓜子二手車、縱橫文學等公司的一面上。張勇哥提醒我:彆着急參加面試,你這樣找offer完全是浪費時間和機會,先複習複習吧,反正你只要不離職就有工資,並把他的書籍借給我複習。在此也要非常的感謝他。
聽了勇哥的勸,也仔細總結了失敗的原因,收拾一下焦慮的心,我制定了爲期一週的複習計劃。針對前段時間面試時不會的知識點進行了複習。先後泛讀的書有《redis實戰》《maven實戰》《mybatis從入門到精通》《java編程思想》《Java併發編程的藝術》《深入理解jvm虛擬機》《sql必知必會》等。初步複習一輪後,又陸續參加了京東、每日優鮮、中科院自動化所、360、蘇寧、餓了麼、今日頭條、百度等公司面試。此時的我已經可以更自信、清晰的表達對技術的理解,差不多都能順利通過了一面;進入了二面和HR面後,因爲缺乏必要的準備,也錯過了一些好機會。
直到4月9號,我參加完百度的面試,我意識到以目前的知識儲備和項目經歷,已經不可以找到更好的offer了。就此在4月10號辦理了離職,搬家去了望京南,準備就職每日優鮮。
這段經歷讓我明白:離開只代表不合適;對技術的熱愛是我的初心,也是我堅持下去的動力。
面試總結
一個多月的面試經歷讓我成長了很多。一些遇到的面試題總結如下:
一、java相關
序號 | 題目 |
---|---|
1 | synchronized關鍵字的用法、底層實現 |
2 | volatile關鍵字是否瞭解、什麼時候用 |
3 | synchronized和Lock接口的區別?Lock接口有哪些實現(百度) |
4 | 樂觀鎖和悲觀鎖是什麼? |
5 | 說下java中的異常的繼承體系 |
6 | 筆試題考察String類的intern()函數(網易) |
7 | 筆試題考察Integer緩衝池IntegerCache(網易) |
8 | 筆試題考察java.util.List中subList方法(攜程) |
9 | java的多態表現形勢有哪幾種 |
10 | 用過哪些設計模式,手寫一個線程安全的單例模式。(有信、網易) |
11 | Spring中用到了哪些設計模式? |
12 | 動態代理的實現方式。jdk、cglib方式 |
13 | wait和sleep的區別 |
14 | HashMap是否線程安全、底層實現、如何擴容和高併發時存在的問題; |
15 | HashMap 與 TreeMap的區別 |
16 | ConcurrentHashMap的底層實現 |
17 | HashMap和Hashtable的區別 |
18 | 粗略畫一畫java集合的繼承體系結構圖(百度) |
19 | IO和NIO瞭解嗎,把你知道的動筆寫一寫(百度) |
20 | Java中Comparable和Comparator區別 |
21 | ThreadLocal用過嗎(縱橫文學) |
22 | 是否有JVM調優的經歷(網易) |
23 | java的垃圾回收機制 |
24 | java的內存模型 |
25 | java的內存區域有哪些 |
26 | 類加載的機制、分哪些階段? |
27 | java爲什麼採用雙親委派模型(恆昌利通、今日頭條) |
28 | 開啓多線程後,如何判斷所有線程都已經執行完畢?(網易) |
29 | 如何查找java線程中最耗CPU資源的哪個線程(網易) |
30 | java高併發包裏的類你用過哪些 |
31 | 畫一畫線程狀態圖(百度) |
32 | 項目中用過java線程池吧?項目中你們把核心池、最大池、阻塞隊列設置多大? |
33 | ThreadPoolExecutor執行execute方法的執行流程? |
二、算法設計題
- 請用java語言實現一個線程安全的,基於LRU回收算法的內存cache系統。(縱橫文學)
- 有三個線程ID分別是A、B、C,請用多線程實現在屏幕上循環打印10次ABCABC。(注意:實現中不要用sleep)(縱橫文學)
- 兩個鏈表生成相加鏈表。(今日頭條)
兩個鏈表,分別表示2個整數,每個鏈表的節點含有數值0-9
比如9->3->7 和 6->3 相加,得到1->0->0->0 - 寫一個程序,模擬5個人賽跑,並輸出每個人的成績。(關鍵點是如何讓5人同時起跑)(有信)
- 請實現一個鏈表。
三、框架
- 看你在項目中使用過Spring,你對AOP瞭解多嗎?(問spring必問aop)
- Spring MVC的執行流程
- DispatcherServlet你知道吧?它用來幹嘛的
- 畫一畫dubbo的架構圖,dubbo節點之間的長鏈接有哪些,dubbo協議瞭解嗎
- Mybatis中#{}和${}傳參的區別
mybatis的作用域(Scope) - zookeeper的選主過程瞭解嗎
- 是否動手實現過分佈式鎖
- redis和memcache的區別;
- redis是如何持久化的:rdb和aof。(京東)
- redis有哪些數據類型;
- redis爲什麼設計成單線程模型?
- maven的jar版本衝突如何解決
四、數據庫相關(mysql)
- 有沒有msyql優化經驗?(蘇寧)
- mysql的索引分類:
- 唯一索引、主鍵索引的區別?(蘇寧)
聚簇索引和非聚簇索引的區別?(攜程) - mysql的存儲引擎有哪些,區別是什麼;
- 說說事務的特性和隔離級別(MySQL默認的隔離級別是?)(餓了麼)
- 你們的項目中,是怎麼控制事務的?
- 左外連接、右外連接、全連接;自然連接、內連接等概念。(餓了麼)
- 如何確定SQL是否走了索引?
- 不走索引的情況有哪些,索引失效。(蘇寧、餓了麼)
- 動手寫幾個簡單的sql語句(涉及到分組、排序、聚集函數等)
- MySQL使用自增ID主鍵和UUID主鍵的比較
- 數據庫連接池你們用的哪種,爲什麼採用該連接池?
五、Linux
- 服務器端如何定位問題?
- 說幾個常用的Linux命令。
六、介紹項目
1、你在項目中踩過的坑有哪些,舉例說明。
2、你剛纔介紹的項目裏是用什麼手段解決高併發?(網易)
3、你們數據庫數據量是什麼量級的?
4、你剛纔介紹的這個項目部署在幾臺機器上?
5、你們的項目中如何記錄錯誤日誌?
6、你剛纔的項目說到了反射,反射的優缺點你知道嗎
7、你們項目中的定時任務是怎麼做的?(答:定時任務不是我做的)
8、你們的redis數據庫佔多大磁盤空間?
9、有沒有解決過一些線上的bug
七、其他方面
- servlet的兩種主要的跳轉方式forward和redirect區別
- 一維座標軸上分佈着10個點。確定一個座標,讓10個點到該點的距離和最小。
- 畫一畫tcp三次握手,四次揮手示意圖。
- 你有什麼想問的問題嗎?