本文出自 Eddy Wiki 叁熔,轉(zhuǎn)載請注明出處:http://eddy.wiki/interview-company.html
本文從網(wǎng)絡(luò)上收集了一些公司的 Android 面試題吗跋。
Alibaba
一面
- 說一下你怎么學(xué)習(xí)安卓的?
- 項目中遇到哪些問題祭钉,如何解決的骤菠?
- Android事件分發(fā)機制它改?
- 三級緩存底層實現(xiàn)?
- HashMap底層實現(xiàn)商乎,hashCode如何對應(yīng)bucket?
- Java的垃圾回收機制央拖,引用計數(shù)法兩個對象互相引用如何解決?
- 用過的開源框架的源碼分析
- Acticity的生命周期,Activity異常退出該如何處理鲜戒?
- tcp和udp的區(qū)別专控,tcp如何保證可靠的,丟包如何處理袍啡?
二面:
- 標(biāo)號1-n的n個人首尾相接踩官,1到3報數(shù),報到3的退出境输,求最后一個人的標(biāo)號
- 給定一個字符串蔗牡,求第一個不重復(fù)的字符 abbcad -> c
新浪微博
一面
靜態(tài)內(nèi)部類、內(nèi)部類嗅剖、匿名內(nèi)部類辩越,為什么內(nèi)部類會持有外部類的引用?持有的引用是this信粮?還是其它黔攒?
靜態(tài)內(nèi)部類:使用static修飾的內(nèi)部類
匿名內(nèi)部類:使用new生成的內(nèi)部類
因為內(nèi)部類的產(chǎn)生依賴于外部類,持有的引用是類名.this强缘。
ArrayList和Vector的主要區(qū)別是什么督惰?
ArrayList在Java1.2引入,用于替換Vector
Vector:
線程同步
當(dāng)Vector中的元素超過它的初始大小時旅掂,Vector會將它的容量翻倍
ArrayList:
線程不同步赏胚,但性能很好
當(dāng)ArrayList中的元素超過它的初始大小時,ArrayList只增加50%的大小
Java中try catch finally的執(zhí)行順序
先執(zhí)行try中代碼發(fā)生異常執(zhí)行catch中代碼商虐,最后一定會執(zhí)行finally中代碼
switch是否能作用在byte上觉阅,是否能作用在long上,是否能作用在String上秘车?
switch支持使用byte類型典勇,不支持long類型,String支持在java1.7引入
Activity和Fragment生命周期有哪些叮趴?
Activity——onCreate->onStart->onResume->onPause->onStop->onDestroy
Fragment——onAttach->onCreate->onCreateView->onActivityCreated->onStart->onResume->onPause->onStop->onDestroyView->onDestroy->onDetach
onInterceptTouchEvent()和onTouchEvent()的區(qū)別割笙?
onInterceptTouchEvent()用于攔截觸摸事件
onTouchEvent()用于處理觸摸事件
RemoteView在哪些功能中使用
APPwidget和Notification中
SurfaceView和View的區(qū)別是什么?
SurfaceView中采用了雙緩存技術(shù)眯亦,在單獨的線程中更新界面
View在UI線程中更新界面
講一下android中進程的優(yōu)先級咳蔚?
前臺進程
可見進程
服務(wù)進程
后臺進程
空進程
tips:靜態(tài)類持有Activity引用會導(dǎo)致內(nèi)存泄露
二面
- service生命周期,可以執(zhí)行耗時操作嗎搔驼?
- JNI開發(fā)流程
- Java線程池谈火,線程同步
- 自己設(shè)計一個圖片加載框架
- 自定義View相關(guān)方法
- http ResponseCode
- 插件化,動態(tài)加載
- 性能優(yōu)化舌涨,MAT
- AsyncTask原理
- 65k限制
- Serializable和Parcelable
- 文件和數(shù)據(jù)庫哪個效率高
- 斷點續(xù)傳
- WebView和JS
- 所使用的開源框架的實現(xiàn)原理糯耍,源碼
網(wǎng)易杭研
一面:
- 自我介紹
- Android中ClassLoader和java中有什么關(guān)系和區(qū)別扔字?
- 熟不熟jvm,說一下Jvm的自動內(nèi)存管理温技?
- 語言基礎(chǔ)革为,String類可以被繼承嗎?為什么舵鳞?
- Final能修飾什么震檩?(當(dāng)時我說class、field蜓堕、method抛虏,他說還有嗎?然后又叫我不要在意套才,后來回想起迂猴,應(yīng)該是問到我在參數(shù)里面要不要用final,接下來是因為匿名內(nèi)部類)
- Java中有內(nèi)存泄露嗎背伴?(先說本質(zhì)沸毁,再結(jié)合handler+匿名內(nèi)部類)當(dāng)時如何分析的?
- 描述下Aidl傻寂?覺得aidl有什么缺陷(這里在這個問題上回答有欠缺)
- 評價一下我息尺,如果順利進網(wǎng)易,需要往技術(shù)棧加什么點盡快投入業(yè)務(wù)疾掰?
二面:
- 用過什么開源搂誉,舉一個例子?(volley)
- Activity生命周期个绍?情景:現(xiàn)在在一張act1點了新的act2勒葱,周期如何浪汪?
- Act的launchMode巴柿,有沒有結(jié)合項目用過(自己的程序鎖和微信的PC端登陸對比,不過我現(xiàn)在又發(fā)現(xiàn)死遭,應(yīng)該大約估計可能是動態(tài)加載的一個缺陷广恢,如果有找到相關(guān)信息,請務(wù)必跟我說呀潭。具體問題就是钉迷,當(dāng)在PC端登錄時,Android終端的微信會跳出钠署,即使wechat的task不是在fore糠聪,當(dāng)按下確認,返回的是wechat谐鼎,而不是自己先前的app)
- View的繪制原理舰蟆,有沒有用canvas自己畫過ui?
- 以后想做Android什么方向?(中間件+SDK)
- 怎么看待前端和后端身害?
- 如果學(xué)前端會如何學(xué)味悄?
- 優(yōu)缺點?興趣塌鸯?
- 想不想來杭州侍瑟?
- 評價一下我?往技術(shù)棧加什么丙猬?
三面HR:
- 為什么想來網(wǎng)易涨颜?
- 有投其他公司嗎?
- 網(wǎng)易最吸引你的是什么淮悼?
- 想來杭州嗎咐低?
- 評價一下我?
美團
一面
- 自我介紹
- 面向?qū)ο笕筇匦?/li>
- Java虛擬機袜腥,垃圾回收
- GSON
- RxJava+Retrofit
- 圖片緩存见擦,三級緩存
- Android啟動模式
- 四大組件
- Fragment生命周期,嵌套
- AsyncTask機制
- Handler機制
二面
- 面試官寫程序羹令,看錯誤鲤屡。
- 面試官寫程序讓判斷GC引用計數(shù)法循環(huán)引用會發(fā)生什么情況
- Android進程間通信,Binder機制
- Handler消息機制福侈,postDelayed會造成線程阻塞嗎酒来?對內(nèi)存有什么影響?
- Debug和Release狀態(tài)的不同
- 實現(xiàn)stack 的pop和push接口 要求:
- 1.用基本的數(shù)組實現(xiàn)
- 2.考慮范型
- 3.考慮下同步問題
- 4.考慮擴容問題
蜻蜓FM
一面
- Toolbar的使用
- 如何判斷本地緩存的時候數(shù)據(jù)需要從網(wǎng)絡(luò)端獲取
- 跨進程間通信
- Handler消息機制
- SharedPreference實現(xiàn)
- 快速排序
- 項目難點
豌豆莢三面
豌豆莢一面
- 介紹一下你的項目
- 網(wǎng)絡(luò)框架的搭建
- 圖片加載框架的實現(xiàn)
- 寫個圖片瀏覽器肪凛,說出你的思路
- 上網(wǎng)站寫代碼堰汉,如下: 有一個容器類 ArrayList,保存整數(shù)類型的元素伟墙,現(xiàn)在要求編寫一個幫助類翘鸭,類內(nèi)提供一個幫助函數(shù),幫助函數(shù)的功能是刪除 容器中<10的元素戳葵。
豌豆莢二面
- Activity的啟動模式
- 事件分發(fā)機制
- 寫代碼就乓,LeetCode上股票利益最大化問題
- 寫代碼,劍指offer上第一次只出現(xiàn)一次的字符
豌豆莢三面
- 聊項目拱烁,聊大學(xué)做過的事
- 寫代碼生蚁,反轉(zhuǎn)字符串
- 寫代碼,字符串中出現(xiàn)最多的字符戏自。
2016年4月某公司面試題及面試流程邦投。
靜態(tài)內(nèi)部類、內(nèi)部類擅笔、匿名內(nèi)部類志衣,為什么內(nèi)部類會持有外部類的引用见芹?持有的引用是this?還是其它蠢涝?
- 靜態(tài)內(nèi)部類:使用static修飾的內(nèi)部類
- 內(nèi)部類:就是在某個類的內(nèi)部又定義了一個類玄呛,內(nèi)部類所嵌入的類稱為外部類
- 匿名內(nèi)部類:使用new生成的內(nèi)部類
- 因為內(nèi)部類的產(chǎn)生依賴于外部類,持有的引用是類名.this
ArrayList和Vector的主要區(qū)別是什么和二?
ArrayList在Java1.2引入徘铝,用于替換Vector
Vector:
- 線程同步
- 當(dāng)Vector中的元素超過它的初始大小時,Vector會將它的容量翻倍
ArrayList:
- 線程不同步惯吕,但性能很好
- 當(dāng)ArrayList中的元素超過它的初始大小時惕它,ArrayList只增加50%的大小
Java中try catch finally的執(zhí)行順序
先執(zhí)行try中代碼發(fā)生異常執(zhí)行catch中代碼,最后一定會執(zhí)行finally中代碼
switch是否能作用在byte上废登,是否能作用在long上淹魄,是否能作用在String上?
switch支持使用byte類型堡距,不支持long類型甲锡,String支持在java1.7引入
Activity和Fragment生命周期有哪些?
- Activity——onCreate->onStart->onResume->onPause->onStop->onDestroy
- Fragment——onAttach->onCreate->onCreateView->onActivityCreated->onStart->onResume->onPause->onStop->onDestroyView->onDestroy->onDetach
onInterceptTouchEvent()和onTouchEvent()的區(qū)別羽戒?
onInterceptTouchEvent()用于攔截觸摸事件
onTouchEvent()用于處理觸摸事件
RemoteView在哪些功能中使用
APPwidget和Notification中
SurfaceView和View的區(qū)別是什么缤沦?
SurfaceView中采用了雙緩存技術(shù),在單獨的線程中更新界面
View在UI線程中更新界面
講一下android中進程的優(yōu)先級易稠?
- 前臺進程
- 可見進程
- 服務(wù)進程
- 后臺進程
- 空進程
代碼查錯題缸废,沒記下來
tips:靜態(tài)變量持有Activity引用會導(dǎo)致內(nèi)存泄露
某公司面試題
一面
- service生命周期,可以執(zhí)行耗時操作嗎驶社?
- JNI開發(fā)流程
- Java線程池企量,線程同步
- 自己設(shè)計一個圖片加載框架
- 自定義View相關(guān)方法
- http ResponseCode
- 插件化,動態(tài)加載
- 性能優(yōu)化亡电,MAT
- AsyncTask原理
- 65k限制
- Serializable和Parcelable
- 文件和數(shù)據(jù)庫哪個效率高
- 斷點續(xù)傳
- WebView和JS
Android基礎(chǔ)——Service
Android基礎(chǔ)——IntentService
Android開發(fā)指導(dǎo)——Service
Android開發(fā)指導(dǎo)——綁定Service
Android開發(fā)指導(dǎo)——進程間通信AIDL
Android中Java和JavaScript交互
WebView 遠程代碼執(zhí)行漏洞淺析
WebView中的Java與JavaScript提供【安全可靠】的多樣互通方案
二面
- 所使用的開源框架的實現(xiàn)原理届巩,源碼
- 沒看過,被pass了
- 去面試之前把用到的開源框架源碼分析一定要看看啊