聲明:做者:璇_c2be 連接:www.jianshu.com/p/089861329…java
在2018年10月初,公司倒閉,無奈走上找工做的道路,不想本身平時圖安逸,不思進取,再次找工做才發現,android行業也不是站在風口上,豬也能吹上天的世道了.做爲技術小菜的我,再找工做那幾個月真是戰戰兢兢,被打擊得信心全無.記錄下個人面試經歷,分享給須要的人.勉勵本身要時時進步,纔不會被淘汰.linux
atomicinteger內存模型android
static編譯時有啥不一樣,static 語句塊,static變量,static方法,構造初始化順序(靜態綁定)web
animation和animator的用法,概述實現原理面試
Handler,looper,messagequeue,thread,message,每一個類功能,關係?算法
Mvc,mvp的差別sql
app閃退的緣由有哪些?每種狀況簡述分析過程數據庫
若是一個app存在多進程,請列出所有的ipc方法windows
操做系統中進程和線程有什麼聯繫和區別,系統何時會在用戶態和內核態中切換?設計模式
如何加載ndk庫?如何在jni中註冊native函數,有幾種註冊方式?
一個app若是性能很差,怎麼分析?
設計的六大原則
若是hashmap key不同,可是hashcode同樣會怎麼樣?
okhttp有什麼優秀的設計模式?builder模式有什麼好處?責任鏈模式有什麼好處?
懶漢模式單例爲何加volaitle?
hashmap是否線程安全?不安全會出什麼問題?
concurrenthashmap讀寫分別是啥狀況?
bindservice和startservice生命週期有啥不一樣?
廣播有幾種?廣播是觀察者模式?跨進城廣播也是觀察者模式嗎?
ams是怎麼找到啓動的那個activity的?
a-b-c界面,其中b是singleinstance的,那麼c界面點back返回a界面,爲何?怎麼管理棧的?
紅黑樹有啥特性?
在oncreate裏面能夠獲得view的寬高嗎?
view的getwidth和getmesurewidth有啥區別?
遍歷hashmap的原理?
23種設計模式
如何避免out of menmory和anr?
arraymap和hashmap的區別?
如何實現線程同步?
簡述android事件分發機制
簡述view繪製流程
用兩個棧實現一個隊列
viewpager嵌套滑動衝突怎麼解決?
svg動畫
屬性動畫畫一個拋物線怎麼弄?
爲了適配多分辨率,引入什麼開源框架?
閱讀界面書架用什麼控件實現?
佈局怎麼作到每行的文字左右對齊?
直播界面,微信對話界面實現?
性能優化怎麼弄?
筆試題不少
sax解析xml的優勢
Contentvalue 鍵值類型
androiddvm的進程與linux的進程說法正確的是?(選擇題)
Android:gravity和android:layout_gravity的區別?
assets與res/raw的區別?
解釋layout_weight的做用
view如何刷新?
animation.animationlistner幹什麼用的?
android經常使用佈局及排版效率
collection與collections的區別
匿名內部類是否能夠extends其餘類?是否能夠implement interface(接口)
補間動畫常見的效果?有哪幾個常見的插入器?
override與overload的區別?overloaded的方法是否能夠改變返回值的類型?
sleep與wait有什麼區別?
在android中,請簡述jni的調用過程?
請結束android.mk的做用,並試寫一個android.mk文件(包含一個.c源文件便可)
冒泡排序(代碼實現)
猴子偷桃問題代碼實現
給出兩個鏈表的頭指針好比p1,p2,判斷這兩個鏈表是否相交,寫出主要思路便可
** 口頭問**
簡述封裝,繼承,多態
強軟弱虛引用的應用場合
輸出一個數組,不重複?(有點忘記題目什麼意思了)
用四個線程計算數組和(我說用join方法,或者countdownlatch,他說用線程池便可)
** 什麼叫安全發佈對象(多線程裏面)final?**
策略模式和命令模式是啥?
拓撲排序
數組和鏈表在中間位置的插入效率
binder的原理
art和dvm在gc上有啥不一樣?有啥改進?
linux和windows下進程怎麼通訊的?(徹底不瞭解)
性能優化作過什麼工做?
一個類實現一個接口,接口引用指向這個類對象,能夠不能夠調用它的tostring方法?
瀏覽器,輸入url匹配,假設有一億條url緩存,用什麼數據結構匹配?
recycleview緩存機制相比listview緩存機制有啥改進?
一個長度爲10的arraylist和linklist,在第五條插入,哪一個更快?
子類複寫父類的equals方法,可是子類增長了一個成員變量int,請問equals方法咋整?
手寫hashmap
寫生產者消費者模式,不可用syncronized
treemap,hashmap應用場景
dvm和art的區別
從framework的角度講activity的啓動流程(冷啓動)
手寫算法,二維數組,每一行,每一列都是升序,找出某數的下標,沒有輸出[-1,-1],最好的時間複雜度是m+n(行數+列數)
zxing二維碼開源框架流程
contentprovider怎麼升級維護?
constaintlayout
bitmap有幾種格式,分別佔多少字節
android事件分發機制,如何下發,如何上傳?
一個界面下拉刷新要怎麼實現?
bitmap佔用內存多少怎麼計算?一個像素佔幾個字節?
threadlocal的原理?
framework加載activity的流程
arraylist和linkedlist的應用場景
網絡請求相關的框架
好幾萬條短信,滑動卡頓怎麼解決?
有沒有了解過三方開源數據庫(好像是騰訊的什麼數據庫框架,不只僅是懂sqlite)
避免內存泄漏,爲何說handler用成員內部類會內存泄漏?activity不是已經到gcroot被切斷了嗎?還有靜態context持有activity的引用會內存泄漏,必需要持有怎麼辦?(及時釋放)
計算viewgroup的層級,遞歸實現和非遞歸實現
本身寫一個應用,包名就叫android行不行,爲何?
主線程looper若是沒有消息,就會阻塞在那,爲何不回anr?
系統進程能夠用webview嗎?
原子類的瞭解
一個app多進程的好處
一個arraylist,裏面所有是int,講全部值是2的整數的節點刪除
arraymap瞭解
binder機制
shareprefrence原理?是否線程安全和進程安全?
一個app啓動頁另開一個進程,啓動頁10s後啓動mainactivity,請問5s的時候有幾個進程?
java內存結構,內存模型
冒泡排序手寫
如何判斷一個字符串是迴文字符串
爲何要引入activity這個組件
shareprefrence不是進程安全,假設一個apk兩個進程同時修改shareprefrence怎麼辦?
contenprovider已是進程間通訊,爲何還要引入broadcastreceiver?
a啓動b,b啓動c,怎樣能夠在c界面點back退回到a?
startservice和bindservice生命週期有什麼不一樣?
兩個應用同時註冊一個廣播,優先級都同樣,哪一個會先收到廣播?(有序廣播?)
還有些其餘的,忘記了
threadlocal原理
zxing有過優化提升識別率嗎?
arraylist裏面能夠不能夠new一個t泛型的數組?
補間動畫click事件還在原位怎麼解決?
多線程併發
隔代數據庫升級
性能優化
APK 的前世此生:從 Android 源碼到 apk 的編譯打包流程
在這裏得到的不只僅是技術!