1. 程式人生 > >2018屆秋季校招總結

2018屆秋季校招總結

阿里菜鳥網路

  • 阿里主要問專案,涉及Zookeeper,Spring
  • 線上程式設計,寫陣列排序,Java多執行緒實現生產者消費者
  • wait/notify機制,wait與sleep的區別
  • 阿里比較看重實習經歷和專案經驗,喜歡問Zookeeper,Spring,Netty等問題,建議想去阿里的同學要對某一個分散式框架有深入理解,最好看看原始碼

美團技術工程及基礎資料平臺

  • 介紹一下http請求過程(瀏覽器訪問百度到返回介面整個流程)
  • 在TCP請求中,如果服務端監聽埠沒有開啟會怎麼樣
  • 瞭解sack嗎
  • socket中哪些API是用於收發協調的(流量控制,擁塞控制)
  • TCP如何檢測報文丟失
  • 介紹滑動視窗

搜狐焦點

  • 求一個數的最大素因數
  • 約瑟夫環問題
  • 求兩個數的最大公約數
  • 什麼時候觸發full gc,什麼時候觸發minor gc
  • Java8有哪些新特性
  • 寫一個Java8的lamda表示式

滴滴出行

  • 有一段繩子長度為n米,如果n為偶數則對半剪斷,如果n為基數則剪下1米,問剪多少次可以剪成每段1米的
  • 一個不降序陣列,找出其中絕對值最小的
  • 資料庫索引匹配規則
  • Oracle事務實現原理

百度

一面

  • 哈夫曼編碼
  • b樹和b+樹,區別,b+樹的應用(資料庫索引),索引為什麼不用b樹實現(感覺這是必考的一個點)
  • 用一句話概括你對網路傳輸層的理解
  • 介紹一下http及hppts協議,https是如何實現安全傳輸的
  • 手寫歸併排序和快速排序

二面

  • 介紹一下Java中error和Exception的區別,他們的父類是什麼
  • 寫一個會發生OutofMemoryError和StackOverflowError的例子程式碼
  • 如果無限遞迴呼叫肯定會發生StackOverflowError,有沒有其他情況也會發生
  • Java中如何實現呼叫一個類的私有方法
  • 瞭解哪些設計模式,簡單介紹一下工廠模式,他有什麼作用,分為哪幾種
  • 用兩個棧實現一個佇列
  • 查詢兩個字串的最長公共子串
  • 設計一個圖書館管理系統(需求自己想),設計一下資料庫表

三面

  • 三面主要是問專案(一二面也會問)和手寫程式碼
  • Spark的主要工作機制
  • 一個數塔問題,從第一行到最後一行最短的路徑(經典動態規劃問題)
  • 反轉連結串列中第m個節點到第n個節點
  • 開放題,說一下MapReduce模型中Shuffle過程的優化

凡普金科

一面

  • Java實現多執行緒的幾種方式
  • wait/notify機制,什麼時候用notifyAll,實現原理
  • 介紹一下Netty的機制,為什麼說Netty支援高併發
  • Scala的逆變和協變
  • 寫一個單例模式
  • 圖的儲存

二面

  • Netty的粘包拆包問題
  • 對函數語言程式設計的理解

京東

一面

  • 介紹一下TCP滑動視窗
  • HTTP協議get請求和post請求的區別
  • Exception和Error的區別,他們的父類是什麼
  • 介紹一下垃圾回收機制,什麼時候觸發full gc,介紹一下CMS
  • Java的類載入機制

二面

  • 手寫連結串列反轉,時間複雜度多少
  • 介紹垃圾回收機制,垃圾回收記憶體中除了新生代和老年代還有什麼
  • 快排的時間複雜度和空間複雜度
  • 介紹一個最小生成樹演算法
  • 微信公眾號開發中openid是什麼
  • 一幢樓有100層,已知手機在其中某一層摔下就會壞,現在有兩個一樣的手機,請問,最少能摔幾次保證一定找出那個極限的樓層值?
  • 簡歷中沒什麼感興趣的點就問了這些很快結束了

好未來

一面

  • 獲取單鏈表中倒數第k個節點
  • 用非遞迴的方式計算二叉樹的深度
  • 如何設計一個執行緒池,說一下大體思路

二面

  • 一個經典的動態規劃問題,大意是有三個節點,每個節點代表到這的路徑長度,從第一個節點往後走,可以走到下一個節點,也可以返回自己,要求n步走到第三個節點,程式碼實現計算最短的路徑長度

去哪兒網

一面

  • 主要講筆試題的思路(LRU),儲存用雙鏈表實現,我是遍歷實現查詢,問怎麼優化
  • HashMap的結構,有什麼特點
  • HashMap是執行緒不安全的,在併發情況下怎麼解決
  • ConcurrentHashMap是如何實現執行緒安全的,與HashTable的區別
  • 為什麼會產生死鎖,如何解決
  • 對於Linux熟悉嗎,在Linux中如何檢視網路狀態以判斷是否發生擁塞
  • 介紹一下Zookeeper的選舉機制
  • 介紹一下資料庫優化的思路(問的很寬泛,從sql優化到索引優化等等都可以說)
  • 有一個很大的日誌檔案,記錄各個url訪問情況,如何從中找出top100,如果集中在少數的幾個 url如何解決(即如何解決資料傾斜問題)

二面

  • Java中static的用法
  • 類的初始化流程
  • 在一個無序陣列中如何儘快找到他的中位數
  • 有一個很大的日誌檔案,記錄各個url訪問情況,如何從中找出top100,如果集中在少數的幾個 url如何解決(與一面的最後一個問題重複了)

蘇寧

  • 在校成績
  • 專案介紹
  • 你平時通過哪些渠道來了解前沿技術,進行技術積累
  • 如何從一個員工表中查詢男性員工有多少,女性員工有多少

華為CloudBU

  • 在校成績
  • 獎學金情況
  • 期望的工作地點

參考書籍

  • Java程式設計思想
  • Java併發程式設計的藝術(方騰飛)這本書涵蓋了面試中關於Java併發程式設計的絕大部分點
  • 深入理解Java虛擬機器(時間緊的話就看垃圾回收和類載入)
  • 程式設計師程式碼面試指南(左程雲)配合《劍指offer》應對面試中大部分手寫程式碼的題
  • 高效能MySQL(重點是索引那一章)
  • 大型網站系統與Java中介軟體實踐(對阿里的面試很有幫助)
  • 作業系統和網路我看的是本科教材,大致過了一遍

面試總結

  • 我面的是後臺開發,面試過程中要經常總結,不斷完善簡歷,不斷補充面試中遇到的問題,面試中如果遇到了重複的問題而沒有答好是很後悔的
  • 每個公司重視的點都不太一樣,但總體來看校招還是重視基礎,如果沒有特別豐富的專案經驗,就要把基礎知識打牢,手寫程式碼一定要練。如果知識面廣度夠了,而且在某一方面研究的比較深一定可以找到滿意的工作。