酷家樂Java實習面試

  2018年3月20日15時00分到酷家樂赴約Java實習現場面試,進行了接近2小時,記錄如下:

面試(40MIN)

自我介紹

多線程實現

  1. 繼承Thread類創建線程
  2. 實現Callable接口創建線程
  3. 實現Runnable接口創建新線程

流量削峯的一種解決方案

  • MQ推送模式改爲定時或者批量拉取模式
  • 消息接收方實現批量處理等方式

介紹Redis

  基於C語言開發的一種非關係型數據庫,數據放在內存,使用RDB[快照]方式或者AOF[日誌]方式持久化。

  Redis的優勢包括速度、對富數據類型的支持(String、Hash、List、Set、Zset)、原子性操作、通用性。

Redis使用場景(回答得不好

  • 緩存(* 熱數據 *
  • 共享Session
  • 隊列 / 棧
  • 位操作(* 大數據處理 *
  • 分佈式鎖與單線程機制(* 秒殺系統 *
  • 排行榜 / 計數器(* ZSet ZADD命令 *
  • 發佈 / 訂閱

Redis如何保證原子性(不會

  1. 單個操作是原子性的
  2. 多個操作也支持事務,即原子性,通過MULTI和EXEC指令包起來

介紹對MyBatis的理解

  MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集,它可以使用簡單的 XML 或註解來配置和映射原生信息,將接口和 Java 的 POJO 映射成數據庫中的記錄。

SpringMVC的核心

  • 控制器核心類:DispatcherServlet
  • 加載配置文件核心類:ContextLoaderListener
  • 處理url映射核心類:BeanNameUrlHandlerMapping
  • 處理視圖資源核心類:ResourceBundleViewResolver
  • 方法動態調用核心類ParameterMethodNameResolver

介紹對Spring的理解

  Spring是一個輕量級的控制反轉(IoC)和麪向切面(AOP)的容器框架。

  • IoC:控制反轉(Inversion of Control)和依賴注入(Dependecy Injection)廣義上講是同一個概念,具體的講:在Spring中創建被調用者的工作不再由調用者來完成,因此稱爲控制反轉。創建被調用者的工作由Spring來完成,然後注入調用者,因此也稱爲依賴注入。
  • AOP:面向切面編程(AOP)在Spring中主要表現爲兩個方面 1. 面向切面編程提供聲明式事務管理 。2. Spring支持用戶自定義的切面。

Java 8新特性(答得不好)

  主要有以下幾個新特性:

  • 默認方法:在接口裏面有了一個實現的方法
  • Lambda 表達式:Lambda允許把函數作爲一個方法的參數
  • Stream API:把真正的函數式編程風格引入到Java中
  • Date Time API:加強對日期與時間的處理
  • Optional 類:Optional 類已成爲 Java 8 類庫的一部分,用來解決空指針異常
  • 方法引用:可以直接引用已有Java類或對象的方法或構造器
  • 新編譯工具:Nashorn引擎(一個新的JavaScript引擎)、 類依賴分析器

λ表達式的理解

  流式數據處理

對RESTful的理解

  URL定位資源,HTTP動詞描述操作

  • GET 用來獲取資源
  • POST 用來新建 / 更新資源
  • PUT 用來更新資源
  • DELETE 用來刪除資源

對微服務的瞭解

  微服務架構風格是一種使用一套小服務來開發單個應用的方式,每個服務運行在自己的進程中,並使用輕量級機制通信(通常是HTTP API),這些服務能夠通過自動化部署機制來獨立部署、可以使用不同的編程語言實現、可以使用不同的數據存儲技術,並保持最低限度的集中式管理。

DiskLruCache海量圖片緩存

  三級緩存:內存LruCache + 磁盤DiskLruCache + 網絡Retrofit 2

這是面試官問到本人以前做過的Android項目

遇到過什麼技術難題,最終如何解決的

有什麼需要問的


筆試(1H,共4道題,忘了一道)

給定一元素可重複的有序數組和一個值,找出數組內該值首次出現和最後出現的數組下標


  1. 不限時間複雜度
  2. 時間複雜度 < O(N)

可用改進的二分法解答:若當前單位的左右值均不等於給定值時命中。

給定一單向列表頭部,判斷隊列有無環路


  1. 不限空間複雜度
  2. 空間複雜度 < O(N)

可用雙指針追逐法解答:步長分別爲 k 和 k+1,某一步兩指針相遇則有環路。

遊戲道具:足夠大圓桌、足夠多黑白圍棋。遊戲規則:黑白方回合制落子,直至桌面無法再放一顆棋子,則最後落子方勝。如何保證必贏?

第一步佔圓心,然後與對方鏡像對稱下棋,能保證必贏。

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