安卓 面試經驗
阿新 • • 發佈:2017-08-20
ria 發現 create 回收 ice chmod 內存 刪除 aid
韓夢飛沙 韓亞飛 [email protected] yue31313 han_meng_fei_sha
#Alibaba
一面
- 說一下你怎麽學習安卓的?
- 項目中遇到哪些問題,如何解決的?
- Android事件分發機制?
- 三級緩存底層實現?
- HashMap底層實現,hashCode如何對應bucket?
- Java的垃圾回收機制,引用計數法兩個對象互相引用如何解決?
- 用過的開源框架的源碼分析
- Acticity的生命周期,Activity異常退出該如何處理?
- tcp和udp的區別,tcp如何保證可靠的,丟包如何處理?
二面:
- 標號1-n的n個人首尾相接,1到3報數,報到3的退出,求最後一個人的標號
- 給定一個字符串,求第一個不重復的字符 abbcad -> c
======
#美團
一面
- 自我介紹
- 面向對象三大特性
- Java虛擬機,垃圾回收
- GSON
- RxJava+Retrofit
- 圖片緩存,三級緩存
- Android啟動模式
- 四大組件
- Fragment生命周期,嵌套
- AsyncTask機制
- Handler機制
二面
- 面試官寫程序,看錯誤。
- 面試官寫程序讓判斷GC引用計數法循環引用會發生什麽情況
- Android進程間通信,Binder機制
- Handler消息機制,postDelayed會造成線程阻塞嗎?對內存有什麽影響?
- Debug和Release狀態的不同
- 實現stack 的pop和push接口 要求:
- 1.用基本的數組實現
- 2.考慮範型
- 3.考慮下同步問題
- 4.考慮擴容問題
=======
#豌豆莢三面
豌豆莢一面
- 介紹一下你的項目
- 網絡框架的搭建
- 圖片加載框架的實現
- 寫個圖片瀏覽器,說出你的思路
- 上網站寫代碼,如下: 有一個容器類 ArrayList,保存整數類型的元素,現在要求編寫一個幫助類,類內提供一個幫助函數,幫助函數的功能是刪除 容器中<10的元素。
豌豆莢二面
-
Activity的啟動模式
-
事件分發機制
-
寫代碼,LeetCode上股票利益最大化問題
-
寫代碼,劍指offer上第一次只出現一次的字符
豌豆莢三面
- 聊項目,聊大學做過的事
- 寫代碼,反轉字符串
- 寫代碼,字符串中出現最多的字符。
========
#蜻蜓FM
一面
- Toolbar的使用
- 如何判斷本地緩存的時候數據需要從網絡端獲取
- 跨進程間通信
- Handler消息機制
- SharedPreference實現
- 快速排序
- 項目難點
==========
#新浪微博
一面
靜態內部類、內部類、匿名內部類,為什麽內部類會持有外部類的引用?持有的引用是this?還是其它?
靜態內部類:使用static修飾的內部類
匿名內部類:使用new生成的內部類
因為內部類的產生依賴於外部類,持有的引用是類名.this。
ArrayList和Vector的主要區別是什麽?
ArrayList在Java1.2引入,用於替換Vector
Vector:
線程同步
當Vector中的元素超過它的初始大小時,Vector會將它的容量翻倍
ArrayList:
線程不同步,但性能很好
當ArrayList中的元素超過它的初始大小時,ArrayList只增加50%的大小
Java集合類框架
Java中try catch finally的執行順序
先執行try中代碼發生異常執行catch中代碼,最後一定會執行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()的區別?
onInterceptTouchEvent()用於攔截觸摸事件
onTouchEvent()用於處理觸摸事件
RemoteView在哪些功能中使用
APPwidget和Notification中
SurfaceView和View的區別是什麽?
SurfaceView中采用了雙緩存技術,在單獨的線程中更新界面
View在UI線程中更新界面
講一下android中進程的優先級?
前臺進程
可見進程
服務進程
後臺進程
空進程
tips:靜態類持有Activity引用會導致內存泄露
##二面
- service生命周期,可以執行耗時操作嗎?
- JNI開發流程
- Java線程池,線程同步
- 自己設計一個圖片加載框架
- 自定義View相關方法
- http ResponseCode
- 插件化,動態加載
- 性能優化,MAT
- AsyncTask原理
- 65k限制
- Serializable和Parcelable
- 文件和數據庫哪個效率高
- 斷點續傳
- WebView和JS
- 所使用的開源框架的實現原理,源碼
=========
#網易杭研
###一面:
- 自我介紹
- Android中ClassLoader和java中有什麽關系和區別?
- 熟不熟jvm,說一下Jvm的自動內存管理?
- 語言基礎,String類可以被繼承嗎?為什麽?
- Final能修飾什麽?(當時我說class、field、method,他說還有嗎?然後又叫我不要在意,後來回想起,應該是問到我在參數裏面要不要用final,接下來是因為匿名內部類)
- Java中有內存泄露嗎?(先說本質,再結合handler+匿名內部類)當時如何分析的?
- 描述下Aidl?覺得aidl有什麽缺陷(這裏在這個問題上回答有欠缺)
- 評價一下我,如果順利進網易,需要往技術棧加什麽點盡快投入業務?
###二面:
- 用過什麽開源,舉一個例子?(volley)
- Activity生命周期?情景:現在在一張act1點了新的act2,周期如何?
- Act的launchMode,有沒有結合項目用過(自己的程序鎖和微信的PC端登陸對比,不過我現在又發現,應該大約估計可能是動態加載的一個缺陷,如果有找到相關信息,請務必跟我說。具體問題就是,當在PC端登錄時,Android終端的微信會跳出,即使wechat的task不是在fore,當按下確認,返回的是wechat,而不是自己先前的app)
- View的繪制原理,有沒有用canvas自己畫過ui?
- 以後想做Android什麽方向?(中間件+SDK)
- 怎麽看待前端和後端?
- 如果學前端會如何學?
- 優缺點?興趣?
- 想不想來杭州?
- 評價一下我?往技術棧加什麽?
###三面HR:
- 為什麽想來網易?
- 有投其他公司嗎?
- 網易最吸引你的是什麽?
- 想來杭州嗎?
- 評價一下我?
=========
安卓 面試經驗