個人簡介 Java後臺開發方向。 非電腦專業碩士,專業涉及到一些開發。 實驗室項目主要是Java Web系統,挖掘小亮點。 無實習經驗。 閑話嘮嗑 回顧這幾個月,宛若夢一場。 一開始心態不好,看到要學習的東西一大堆,沉不下心來學習,看什麼東西都是看著看著就很浮躁,開始瘋狂抖腿,沉迷幻想,以 ...
個人簡介
Java後臺開發方向。
非電腦專業碩士,專業涉及到一些開發。
實驗室項目主要是Java Web系統,挖掘小亮點。
無實習經驗。
閑話嘮嗑
回顧這幾個月,宛若夢一場。
一開始心態不好,看到要學習的東西一大堆,沉不下心來學習,看什麼東西都是看著看著就很浮躁,開始瘋狂抖腿,沉迷幻想,以為找工作只看少量面經重點即可。
實驗室原因無法實習,四五月份春招的時候參加了阿裡和網易的實習招聘提前感受面試,慘敗。可以說是一塌糊塗。當頭一棒,腦子清醒了,既然想要從事互聯網行業,早學晚學還是要學,不如現在踏踏實實好好學,一生受用(室友的面試官對她說的原話,感覺很有道理)。開始分階段制定學習計劃,每碰到一個知識點就來牛客查相關面經問題,逐個攻破。
總共投了三十多家公司,大小公司都有,想給自己多幾個機會,到提前批結束為止只有十家左右有回覆。目前收到阿裡盒馬、騰訊線上教育、網易嚴選、頭條抖音、華為Cloud BU這幾個意向offer。
易緊張體質,一緊張就腸道蠕動汗如雨下,題目答得歪七歪八了,編程題也做不出來了,但面試面多一些緊張感就好一些,不考慮結果,只思考問題,就會好很多了。
能夠拿到offer得益於牛客上大家的面經分享和線上編程練習,是時候回報牛客啦,當然是恭喜各位收到offer的小伙伴們,但是暫時沒收到offer的小伙伴們也不用著急,沉下心來好好學習,offer總會有的。
分享一句雞湯:越努力越幸運。
阿裡巴巴(盒馬,收到意向書)
全程電話面試。
故意比其他公司晚投大半個月,卻是收到的第二個面試。
一面(約一個半小時)
- 自我介紹
- 印象最深的項目?承擔職責?學到了什麼,技術、業務都可以說?項目里的blabla是怎麼實現的,用到了什麼技術?項目分工?項目工程數量?項目分區和分層?
- Servlet規範瞭解嗎?Servlet的整個業務流程?session和cookie的區別?session怎麼變成cookie,怎麼變回session?誰來實現整個流程?
- 項目提到的SSM框架裡面瞭解哪些?Spring IoC中Bean的生命周期?誰來管理Bean的生命周期?BeanFactory和ApplicationContext的關係?@Autowired和@Resource的區別? Spring的自動掃描怎麼實現的?誰實現的?
- MyBatis介紹一下?你說到這是一個持久層框架,那你瞭解JPA規範嗎?(不知道)
- UML瞭解嗎?(不會)設計模式?
- Zookeeper瞭解嗎?(不會)
- 剛纔提到的分散式實現多個應用的Session共用問題?
- 數據結構瞭解嗎?鏈表結構說一下?
- 演算法瞭解嗎,比方說紅黑樹、二叉樹的演算法?
- 學了這麼久的Java,你的技術棧規劃是怎麼樣的?
二面(部門主管面,約二十分鐘)
- 你是專業的,你知道你報的是Java應用開發工程師嗎?你平常是怎麼學Java的?
- 面向對象有瞭解嗎?三個特性?
- 設計模式有瞭解嗎?單例模式、工廠模式、模式……單例模式有什麼需要註意的嗎?(多線程併發問題:synchronized+volatile)你寫單例的時候如果這個單例對象有欄位值,你會去改變這些欄位值嗎?為什麼呢?
- 平常用到全局變數嗎?為什麼不用呢?
- 平常會做單元測試嗎?
- 。。。
HR面(約二十分鐘)
- 自我介紹
- 你們專業和軟體開發是不是不太相關?為什麼報這個崗位?
- 你平常有做商業項目嗎?還是都是實驗室的項目?有沒有實習?
- 你感覺大學期間最有成就感的事情是什麼?
- 你有遇到過什麼特別大的挫折嗎?
- 你父母對你有什麼期望嗎?
- 你未來的職業規劃是如何?
- 你喜歡什麼樣的工作?
- 加班壓力能承受嗎?
- 未來的職業規劃?
網易(郵件,收到意向書)
公司現場面試。
蜜汁面試,一面比一面短。
一面(約三十分鐘)
- 自我介紹
- 項目是否碰到特殊網路環境?
- ArrayList和LinkedList區別?
- ArrayList和LinkedList是線程安全的嗎?為什麼說他們不是線程安全的,舉實際場景?
- 有什麼線程安全的List?(CopyOnWriteArrayList)講一下怎麼實現線程安全的?(讀時複製,寫時共用,加鎖機制)
- 線程A和線程B同時針對一個共用變數進行操作,如何實現線程安全?
- 平常怎麼創建線程?線程池裡閑置線程怎麼保活?(不清楚,說了自己的想法)那怎麼喚醒?如果用wait()和notify(),對誰加鎖?
- 給一個資料庫表,ID、score兩個欄位分別代表學生ID和成績,寫SQL語句求ID=?的學生排第幾名?
- 假設是InnoDB,給上述SQL語句加索引怎麼加?為什麼這樣建立?聚集索引和非聚集索引有什麼區別?
二面(約二十分鐘)
- 自我介紹
- 介紹一下覺得做得最好的項目?畫一下項目的框架結構圖?Nginx用來做什麼?採用了什麼負載均衡策略?萬一某一個伺服器掛掉怎麼辦?(一致性hash)如果添加一個節點呢?
- Spring中Bean生命周期?提到的Aware相關介面指的是什麼?平常會自己會用Aware相關介面嗎?Bean生命周期這麼長是為什麼?
- JVM記憶體模型?如果給一個類,裡面只有一個main方法,方法裡面只有一句System.out.println(“helloworld”),問運行這個類會在Java記憶體模型里發生什麼? “helloworld”存儲在哪裡?
- MySQL資料庫,給一個用戶表格,ID、用戶名、性別、用戶信息…,假設經常對性別欄位進行查詢,問怎麼建立索引?為什麼?假設用戶名需要是唯一的,問怎麼建索引?
HR面(十七分鐘)
- 自我介紹
- 介紹一下自己的專業?為什麼找IT開發工作?
- 介紹一下最有成就感的項目?為什麼覺得這個項目最有成就感?
- 為什麼報了這個部門?
- 你覺得自己有什麼優勢,能給這個部門帶來什麼?
- 講自己的三個優點?
- 說一下自己的不足?
- 。。。
今日頭條(抖音,收到意向書)
牛客網視頻平臺面試,演算法題線上編程一下午走完三面流程。
不涉及部門面試,面試官說三輪面試都是統招的。
一面(約五十分鐘)
- 自我介紹,主要講講做了什麼和擅長什麼
- 看你項目做Spring比較多,問一下Spring相關的東西,IoC是什麼概念?
- Bean的預設作用範圍是什麼?其他的作用範圍?
- 索引是什麼概念有什麼作用?MySQL里主要有哪些索引結構?哈希索引和B+樹索引比較?
- 平常用線程主要是怎麼寫的,會用一些線程框架嗎?(沒有用框架)Java線程池的概念?線程池有哪些?線程池工廠有哪些線程池類型,及其線程池參數是什麼?
- ConcurrentHashMap講一講?
- Java GC機制?GC Roots有哪些?
- Java bin包下麵的工具用過哪些?
- 演算法題:紅藍兩種球,總共N個, N>2, 排列組合,連續3個顏色一樣是非法的,求合法的排列數量
二面(約五十分鐘)
- 自我介紹
- 項目詢問:問了簡歷上寫得最早的項目的情況,項目QPS?數據來源和傳輸形式?
- 發起一個HTTP請求的過程?剛纔提到DNS,DNS用的什麼傳輸層協議?為什麼說用的是TCP協議?(我說其實我不清楚是用的什麼協議)他說那讓你設計的話用什麼協議比較合適?(思考了一下,說覺得UDP比較合適,比較輕量不占用伺服器帶寬,查了一下TCP和UDP都有,用在不同情境下)
- TCP協議的三次握手和四次揮手過程?
- 同步IO和非同步IO的區別?
- 操作系統的blablabla?(懵)算了,直接問你好了,select和epoll?
- 線程如何實現同步?
- MySQL瞭解到什麼程度?binLog知道嗎?
- 描述一下堆排的過程?建堆的時間複雜度?最大堆中求前k個最大值的時間複雜度?
- 演算法題:海島面積計算題,給一個矩陣,0表示海水,相連的1表示海島,上下左右表示相連。
00011
11011
10001
(1)求最大海島面積。
(2)求最大海島面積和對應海島的所有坐標。
(3)求所有海島的所有坐標,按海島分。
每小題講思路,最後寫第二題。
三面(綜合面,約五十分鐘)
- 自我介紹。
- ConcurrentHashMap 在Java7和Java8中的區別?為什麼Java8併發效率更好?什麼情況下用HashMap,什麼情況用ConcurrentHashMap?
- 加鎖有什麼機制?
- ThreadLocal?應用場景?
- Web容器用的什麼?你項目里涉及了SSM框架,一個請求到Tomcat容器了,怎麼到SSM代碼中去?
- 網路協議瞭解嗎?
- **項目介紹一下是做什麼的?講一講學到什麼東西?
- 平常怎麼學習?
- 大學到現在遇到的最大困難是什麼?怎麼剋服?事情太多的時候會有壓力嗎?
- 未來的規劃?
- 目前有offer嗎?
- 設計一個系統:用來促成交易,有多種商品,有購買方和賣出方,促成買家價格大於等於賣出價格的交易。
騰訊(線上教育,面試通過,這兩天兩次錯過電話,HR還會再給我打嗎QAQ)
電話面+QQ遠程桌面做題。
一面(電話面,約一小時十分鐘)
- 自我介紹
- 覺得自己做得最好的項目?項目技術架構?
- HashMap有瞭解嗎?HashMap的時間複雜度?HashMap中Hash衝突是怎麼解決的?鏈表的上一級結構是什麼?Java8中的HashMap有什麼變化?紅黑樹需要比較大小才能進行插入,是依據什麼進行比較的?其他Hash衝突解決方式?
- 實現線程安全的方式?ThreadLocal原理?線程池瞭解嗎說說看?自己用線程池怎麼定參數?
- Java堆中怎麼分區?怎麼判斷對象是否需要回收?Java記憶體占用過大怎麼查看?Java記憶體溢出有碰到過嗎?Java記憶體溢出怎麼定位?
- HTTP常見錯誤碼?TCP三次握手?
- 進程和線程的區別?平常的開發環境是Windows還是Linux?Linux命令知道哪些?要在多個文本文件中找一個關鍵詞用什麼命令?(grep)網路相關的命令是什麼?
- MySQL資料庫引擎?應用場景?查詢優化?NoSQL有用或瞭解嗎?
- 排序演算法瞭解哪些?Java里內置的是用什麼排序方法?快排是穩定的嗎?快排排對象的時候有什麼問題?(提示我,三個欄位,第一個欄位和第二個欄位做hash,第三個不做,還是不太懂)
- 十億個IP,獲得訪問次數最多的十個。
- 五個單詞,在一個長文本中查找是否存在。
- Github有用嗎?平常有看一些博客和書籍嗎?平常有用腳本語言做一些方便自己的事情嗎?
二面(QQ遠程桌面做題)
演算法題:
- 快速排序演算法
- 實現一個lru ***
智力題:
- 一個五升桶,一個三升桶,怎麼倒出四升水,水可以無限量使用
- 從4億qq號碼中,統計出出現次數top 10的號碼
三面(電話面,約一小時)
晚上十點鐘的電話,面試官聲音透露著疲憊。
- 目前有哪些Offer?地域傾向?怎麼選擇?
- 滴滴派發訂單功能設計?
- 有聲小說音頻自動匹配字幕情景題,有大量的音頻文件,非人力能夠做到,語音識別匹配生成字幕文件,字幕文件中語音和字幕的時間需一致,如何設計?
- Linux里查看CPU占用的命令?怎麼看CPU占用?
- 。。。
四面(電話面,約一小時)
- 場景設計題:英雄聯盟H5小游戲排名,實時動態更新,如何實現?
- 場景設計題:杭州G20形象工程需要擦窗子,估計杭州擦窗子要多少費用?
- Java虛擬機相關問題
HR面
常規問題。
華為(Cloud BU,收到offer call)
酒店現場面試。
一面(業務面,約半小時)
項目從後開始問,越早的項目問越多。
- 自我介紹
- 數據量多大?項目PG(PostgreSQL)版本?非結構化數據指的是什麼?有沒有考慮過nosql?分庫分表怎麼分?查詢的表會合併在一起嗎?
- 項目性能有沒有考慮過?(我是做服務端的,主要考慮請求併發量)資料庫性能呢?(瞭解一點,MySQL主從結構)
- 請求到SSH框架的流程圖畫一下?遠程調用Shell腳本用到哪些命令?
- Nginx原理瞭解嗎?(只用到負載均衡,介紹了一下負載均衡策略)
二面(綜合面,約半小時)
- **項目介紹一下?用到了Nginx,用的七層還是四層Nginx? HTTP還是TCP?負載均衡策略用的是什麼?
- 項目負責主要做了哪些事情?學到了什麼東西?項目幾個人?怎麼樣分工?
- 業餘活動?日常時間安排?
- 為什麼參加學生工作?學生工作帶給你最大的收穫是什麼?
- 華為有什麼吸引你的地方?
- 為什麼報**?
CVTE(HR面掛)
一面(電話面)
- 自我介紹
- Spring Cloud用到什麼東西?如何實現負載均衡?服務掛了註冊中心怎麼判斷?
- Spring的優點?Spring AOP實現原理?AOP應用場景?攔截器用來做什麼業務?
- MySQL資料庫引擎和應用場景?
- MySQL行鎖是否會有死鎖的情況?
- MySQL事務隔離級別?
- MySQL平常有索引優化嗎?怎麼去知道一個SQL語句需不需要優化?一個表,建立了索引(B,A),問where A=1 and B=2索引是否能夠生效?
- Java為什麼說是面向對象的?
- Java的三大特性?如果說有兩個方法,同名同參數但不同返回值,問是重載嗎?
- 平常用到哪些集合類?ArrayList和LinkedList區別?HashMap內部數據結構?ConcurrentHashMap分段鎖?
- Volatile關鍵詞?是線程安全的嗎?
- 如何實現synchronized一樣的效果?
二面(視頻面,面試二十五分鐘)
- 自我介紹?
- 你是專業的為什麼來面Java後端?
- 印象最深的項目?為什麼印象深?
- Nginx負載均衡策略?
- ip_hash的優缺點?
- Nginx和其他負載均衡框架對比過嗎?
- Tomcat集群Session共用問題?
- MySQL採用了什麼存儲引擎,為什麼?
- 樂觀鎖和悲觀鎖瞭解嗎?JDK中涉及到樂觀鎖和悲觀鎖的內容?
- 分散式鎖?
- SQL題
t_subject
——————————
c_id
c_student_uid 學生uid
c_teacher_uid 教師uid
c_subject_uid 科目uid
c_score 分數
平均分排名前三的學生uid和平均分數
給這個SQL語句建索引怎麼建? - 演算法題
輸入一個字元串String str,求重覆次數最多的字元的第一個索引值
例如
輸入:"aabcbcbc"
輸出:2(b和c都出現了3次,但b在c前面)
HR面(視頻面,掛)
CVTE的HR面題目大家都一樣,未記錄。
網易游戲(伺服器端開發工程師-工具開發類,一面掛)
公司現場面試。
早上八點打車去濱江,巨緊張 QAQ 腸道一直蠕動,傻乎乎答錯了好幾個問題。
一面(掛)
9:40左右HR小姐姐讓我開始手寫編程題,說做半小時。
兩個面試官,約11:10左右結束面試。
編程題
- 判斷樹對稱
- 數組順時針旋轉90度
- 用wait和notify模擬生產者消費者模式
面試
- 自我介紹
- 項目問題
- 編程題:每題講解一下思路?第一題判斷樹對稱不用遞歸用棧怎麼做?(卡住了)第三題沒做完再寫一下?多個生產者和消費者的情況下,你這個代碼怎麼修改?
- public protected private區別?final和finally區別?final可以用在方法參數上嗎?RuntimeException和非RuntimeException?各舉幾個例子?比方說文件讀寫的時候會有什麼異常?怎麼實現序列化?除了Java原生序列化方法,序列化還有什麼格式?
- JVM記憶體模型?每個區是做什麼的?垃圾回收機制?
- synchronized 和 ReentranLock的區別?平常有用哪些集合類?Concurrent包有用嗎?
- 添加索引的SQL語句?給一個abc三個欄位的索引,where a=0 order by c能用到索引嗎?where a=0 and b大於0 order by c能用到索引嗎?Hash索引和B樹索引的區別?Hash索引有區間查詢嗎?有沒有用nosql?
- 平常用到哪些設計模式?介紹一下模式?模式和裝飾器模式區別?
- NIO和BIO區別?NIO怎麼寫?阻塞和非阻塞,同步和非同步區別?
- 平常用到的框架和庫?有沒有用到網路框架?Spring Cloud?中間件用到嗎?
電話+網頁寫代碼,全程一個多小時
拼多多(一面通過,未繼續後續面試)
約好現場面試時間和網易筆試時間衝突了 QAQ
聯繫人美心善的HR小姐姐幫我改成了線上面試,電話+網頁寫代碼。
線上面試的原因,流程很緩慢,二面在前幾天才聯繫我,想了想決定不參加了。
一面
- 項目介紹
- 項目問題
- HTTP協議是什麼?HTTP格式?GET請求和POST請求的區別?
- TCP協議?TCP三次握手?TCP三次握手過程中什麼階段容易被攻擊?DDos攻擊?
- Java垃圾回收機制講一下?
- Linux有4G的物理記憶體,問開一個Java進程可以給8G記憶體嗎?物理地址和虛擬地址的區別?
- 有一個Safer對象,用來管理對象,調用裡面的方法,不是線程安全的,怎麼處理?(同步、樂觀鎖)同步併發量不行,樂觀鎖對多個對象欄位的情況不行,除同步和樂觀鎖之外的方法?(ThreadLocal)
- 編程題(給20分鐘):輸入一個數組和一個整數,數組的長度、數組元素的範圍、整數的範圍都是1~20000,求數組中的某幾項加起來等於整數的可能性組合數?
四個註意點:數組未排序、可能有相同數、多個數相加也可以不局限於兩項相加、情況總數。
例如輸入:10 5 3 7 5和15
先描述一下思路,然後寫。
IT交流學習請關註我的github項目:github地址