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!