【搬遷】N久之前,安卓開發的百度一面,二面,三面和CVTE一面(2016年秋招)

CVTE一面

  • 圖片緩存你如何去設計
  • LRU算法原理
  • 瞭解過View的繪製
  • 瞭解過事件分發
  • 多線程有使用嗎
  • 線程池有使用嗎
  • java虛擬機內存管理有哪些?
  • 堆跟棧的區別
  • hashmap和hashtable的區別?hashmap中如何解決衝突?hashmap只有鏈表去解決衝突?hashmap如何計算hash值?
  • 線程有幾種狀態,怎麼去停止一個線程
  • sleep和wait的區別
  • 設計模式有哪些,還有呢還有呢?說下你瞭解的單例模式,雙重判定哪雙重?工廠模式有哪些?
  • MVP和MVC的區別
  • 快速排序解釋原理
  • 數組和鏈表的區別
  • 樹和圖的區別
  • 講一下四大組件
  • Service的使用方式
  • Service和Activity如何通信

百度一面

  • 實習項目所做了哪些任務?

  • 你對Volley的理解

  • volley是如何取消請求

  • 一個圖片請求,下載到一半,接下來是開啓一個新的請求還是在原有的基礎上繼續請求。說下你的解決方案。(非斷點續傳,非類似volley的請求緩存)

  • 圖片緩存你如何去設計

  • 那我們來問下基礎,抽象類和接口的區別?或者你在什麼時候去選用?

  • 被static 關鍵字修飾的類能夠被繼承嗎?

  • 瞭解Jvm的內存管理方案

  • 強引用、弱引用的概念,JVM怎樣去判定

  • 循環引用計數解決方案(非可達性分析)

  • 不知道數據形式不知道數據量的數據(可大可小),也不能利用策略去分析,項目時間緊迫,採用怎樣的排序去實現?

這個秋招,我的第一次面試就是百度,可能會止步於一面,首先是自己由於生病在家休息的這段時間,比較浮躁,沒有準備面試的原因,所以基礎這一塊是薄弱的。很多問題面試官其實問得很簡單,我卻沒有回答上來,再想深入下去就很困難,覺得很羞愧。再來則是,思路比較混亂,語言組織不夠清晰,思維比較跳躍。

但是百度的面試官真心給我一種很大氣的感覺,比較我的其他面試經歷。面試的過程中,注重循循善誘,引導你回答問題的方向,會根據你談到的點深入下去,也會給你啓發,糾錯。是會讓你有收穫的過程。起初問我實習做了哪些事情,我講述了我重構項目代碼的過程。利用MVP模式進行重構,然後就開始我混亂的面試過程,最後考察數據結構與算法時候,問的排序的問題,我有很久的時間浪費在去分析問題上面,首先面試官問我有哪幾種排序,我告訴他O(n²)冒泡、插入、選擇和O(nlog(n))的快速、堆、希爾、歸併,然後分析了時間複雜度和空間複雜度,最後選擇歸併排序作爲答案。

但是面試官問我,爲什麼選擇歸併排序不是其他?我的問答,在數據量很大的情況下,採用大文件分割成小文件的形式,是從時間複雜度上去選擇,性能層面去考慮。但是面試官問我,有沒有可能從排序的穩定性去考慮。這裏我就回答得非常不好,因爲我沒有清晰的語言去分析穩定性,最後我告訴他,其他三種排序都是不穩定的,歸併排序是穩定。面試官就問,那麼穩定性是什麼?穩定性對結果有影響嗎?我思考了半天,終於回答了,是有影響的,混亂地舉出了一個例子也就是在已經對年齡排好序的情況下,去對姓名進行排序,不穩定的排序會打亂原有年齡排序的結果。面試官總結了下,無論是在設計中還是選擇排序方案時,我們都是在不改變原有基礎上去進行。

此時寫下這篇博客的我才醒悟,面試官又將問題帶回到了我最開始所講的重構(在不改變原來的功能基礎上去改善代碼),以及網絡請求的問題,排序方案的選擇。

臨走的時候,提醒我出門左拐右拐是電梯方向,很紳士,很有氣度,非常棒的面試經歷,可惜我準備不足,這讓我沉浸在失落中很多天,但我更加堅定了我內心的想法,紮實我的基礎,要寫優質的代碼,要做更加充足的考量。

~~~

本來以爲狗帶了,卻沒有想到又打來了電話。約我後天去面試。挺開心的,面試官是做安卓的。人也很和善,仍然會引導你回答問題的方向。 由於是早上9點吧,人很少,開頭並沒有做自我介紹,拿到我的簡歷,仍然是從簡歷問起。

  • 過度繪製你瞭解多少(項目中寫到了減少過度繪製)
  • 線程管理你會怎麼去使用?
  • Handler在主線程和子線程的通信?子線程與子線程如何通信?對於Handler持有Context,如何避免內存泄漏?
  • 四種引用的概念
  • support material 庫瞭解多少?
  • RecycleView與ListView的區別?
  • ToolBar與ActionBar的區別?
  • 類似微信滑動的界面,當條目很多的情況下,切入另一個Fragment如何在當前fragment上保存條目可能存在的狀態?
  • 算法題:一個有序的數組(12345),旋轉一次(51234),旋轉兩次(45123),在不知道旋轉幾次之後的情況下,如何去求最大值?(沒做出來)

百度三面(總監面):

  • 講一下你項目的優點,說了重構天氣用到了MVP,MVP與MVC的區別。
  • 抽象與接口的區別,一個接口和一個抽象類有相同的方法,子類繼承並且實現這個接口,編譯器會報錯嗎?如果報錯,怎麼去分開這兩個函數?(事實上,並不會報錯,可以去試試)
  • 算法:斐波那契的優化(注意用非遞歸的形式,變量名的規範被面試官吐槽了,當時寫的太急了,好尷尬變量名居然被吐槽了,所以隨時都要注意)
  • 購物軟件上,選擇商品到支付完成經歷了什麼流程?
  • 平時喜歡做什麼?有什麼愛好?最近一次旅遊是什麼時候?最近一次休閒是什麼時候?手上還有什麼offer?平時讀什麼書?職業規劃是什麼?(講了一下自己希望就是堅持技術,並且進入一個好的團隊,可以邀請大家去共同開源,封裝框架等等)?那麼這樣一個團隊你覺得應該具有怎樣的素質?(感覺這裏答得不好)平時去的技術論壇?
  • 有什麼問題要問的?(問了下百度文化:簡單可依賴)

~~~

2016年我還是過了百度,也拿了順豐,小米,順豐是在一天完成所有面試,記不清題了

這篇發在自己搭建一個網站上,還租了個域名,www.merryzoe.com,後面沒搞了,做了兩年自由插畫師和作者,現在回看這段,只覺得終面其實就是走個過場,如果運氣好,跟你同水平的對比各種原因,就進了

運氣不好,就拜拜了

看本仙女日後有沒有空再把我的merryzoe搞起來,發點自己的文學作品和千萬級別的畫作~~哈哈哈,just kidding!

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