记一次欢聚时代面试经历
上個星期受邀請到歡聚時代面試,坐了一個小時左右的地鐵并且找了好一會兒才找到歡聚時代的大廈。歡聚時代有一層樓專門作為面試使用的,環境很好,設計有特色和藝術感。在沙發上等了一會兒,就遇到了面試官,看起來30多歲樣子,戴一副有點酷的眼鏡,然后到兩個沙發椅相對而坐,自我介紹之后,真正的面試開始。
聽說大廠的面試都是喜歡玩連環炮(就是對一個知識點從簡單到難逐漸深入地去問),確實如此,這場面試持續了差不多一個小時,所問的內容量還是比較大的,涉及的知識點深度廣度都有,由于內容多就無法一一記錄了,只能寫下有印象的:
連環炮1:
有看過哪些jdk源碼?
ArrayList、LinkedList底層如何設計?各自的優缺點?
安卓中推薦替代HashMap的集合類是?
SparseArray和HashMap相比好在哪里?
HashMap有什么問題?
ConcurrentHashMap如何實現?
連環炮2:
什么是線程安全?
Synchronized作用?
Synchronized可以作用在什么地方?
Synchronized作用在成員方法和靜態方法的區別?
Synchronized方法遞歸會出現什么問題?(這個問題現在還是不懂,感覺可能是想問死鎖,但是因為Synchronized是可重入鎖應該不會)
連環炮3:
最擅長什么?(我說自定義View)
做過的最復雜的自定義View是?
自定義View主要流程?
onDraw方法中的canvas從哪里來?怎么傳遞?父View和子View使用的是否同一個canvas?
onMeasure中的measureSpec是什么?、
measureSpec三種模式分別代表什么?
getMeasureWidth和getWidth的區別?什么時候不一樣?
連環炮4:
retrofit的作用?
retrofit為什么通過接口可以定義一個請求?
動態代理實現原理?
看過動態代理生成的類源碼么?
連環炮5:
RxJava用過的操作符有?
假如現在有個業務場景:獲取一份數據,先從內存緩存拿,拿不到再從磁盤緩存拿,拿不到再從網絡拿,使用哪個RxJava操作符?
RxJava操作符takeFirst和first有什么不同?
RxJava線程切換實現原理?
連環炮6:
簡述JVM工作流程?
如何改變JVM對象從survivor到老年代之間的gc次數?
調過gc參數么?調過哪些gc參數?
幾個印象深刻的連環炮就是這些,還有一些比較雜的就不寫了。個人感覺面試題還不算很難,原理的深入還不算很深,但是會問的比較具體,可能一時想不清晰。
總結
以上是生活随笔為你收集整理的记一次欢聚时代面试经历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cortex-A7中断详解(一)
- 下一篇: php 建模,php建模(php_uml