前言
金三銀四得糜,很多同學(xué)心里大概都準(zhǔn)備著年后找工作或者跳槽艘虎。最近有很多同學(xué)都在交流群里求大廠面試題症概。正好我電腦里面有這方面的整理,于是就發(fā)上來(lái)分享給大家但荤。
這些題目是網(wǎng)友去百度罗岖、小米、樂(lè)視腹躁、美團(tuán)桑包、58、獵豹纺非、360哑了、新浪赘方、搜狐等一線互聯(lián)網(wǎng)公司面試被問(wèn)到的題目。熟悉本文中列出的知識(shí)點(diǎn)會(huì)大大增加通過(guò)前兩輪技術(shù)面試的幾率弱左。
主要分為以下幾部分:
(1)java面試題
(2)Android面試題
(3)高級(jí)開(kāi)發(fā)技術(shù)面試題
(4)跨平臺(tái)Hybrid 開(kāi)發(fā)
一窄陡、java面試題
熟練掌握java是很關(guān)鍵的,大公司不僅僅要求你會(huì)使用幾個(gè)api拆火,更多的是要你熟悉源碼實(shí)現(xiàn)原理跳夭,甚至要你知道有哪些不足,怎么改進(jìn)们镜,還有一些java有關(guān)的一些算法币叹,設(shè)計(jì)模式等等。
(一) java基礎(chǔ)面試知識(shí)點(diǎn)
java中==和equals和hashCode的區(qū)別
int模狭、char颈抚、long各占多少字節(jié)數(shù)
int與integer的區(qū)別
探探對(duì)java多態(tài)的理解
String、StringBuffer嚼鹉、StringBuilder區(qū)別
什么是內(nèi)部類(lèi)贩汉??jī)?nèi)部類(lèi)的作用
抽象類(lèi)和接口區(qū)別
抽象類(lèi)的意義
抽象類(lèi)與接口的應(yīng)用場(chǎng)景
抽象類(lèi)是否可以沒(méi)有方法和屬性?
接口的意義
泛型中extends和super的區(qū)別
父類(lèi)的靜態(tài)方法能否被子類(lèi)重寫(xiě)
進(jìn)程和線程的區(qū)別
final反砌,finally雾鬼,finalize的區(qū)別
序列化的方式
Serializable 和Parcelable 的區(qū)別
靜態(tài)屬性和靜態(tài)方法是否可以被繼承?是否可以被重寫(xiě)宴树?以及原因策菜?
靜態(tài)內(nèi)部類(lèi)的設(shè)計(jì)意圖
成員內(nèi)部類(lèi)、靜態(tài)內(nèi)部類(lèi)酒贬、局部?jī)?nèi)部類(lèi)和匿名內(nèi)部類(lèi)的理解又憨,以及項(xiàng)目中的應(yīng)用
談?wù)剬?duì)kotlin的理解
閉包和局部?jī)?nèi)部類(lèi)的區(qū)別
string 轉(zhuǎn)換成 integer的方式及原理
(二) java深入源碼級(jí)的面試題(有難度)
哪些情況下的對(duì)象會(huì)被垃圾回收機(jī)制處理掉?
講一下常見(jiàn)編碼方式锭吨?
utf-8編碼中的中文占幾個(gè)字節(jié)蠢莺;int型幾個(gè)字節(jié)?
靜態(tài)代理和動(dòng)態(tài)代理的區(qū)別零如,什么場(chǎng)景使用躏将?
Java的異常體系
談?wù)勀銓?duì)解析與分派的認(rèn)識(shí)。
修改對(duì)象A的equals方法的簽名考蕾,那么使用HashMap存放這個(gè)對(duì)象實(shí)例的時(shí)候祸憋,會(huì)調(diào)用哪個(gè)equals方法?
Java中實(shí)現(xiàn)多態(tài)的機(jī)制是什么肖卧?
如何將一個(gè)Java對(duì)象序列化到文件里蚯窥?
說(shuō)說(shuō)你對(duì)Java反射的理解
說(shuō)說(shuō)你對(duì)Java注解的理解
說(shuō)說(shuō)你對(duì)依賴(lài)注入的理解
說(shuō)一下泛型原理,并舉例說(shuō)明
Java中String的了解
String為什么要設(shè)計(jì)成不可變的?
Object類(lèi)的equal和hashCode方法重寫(xiě)拦赠,為什么巍沙?
(三) 數(shù)據(jù)結(jié)構(gòu)
常用數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介
并發(fā)集合了解哪些?
列舉java的集合以及集合之間的繼承關(guān)系
集合類(lèi)以及集合框架
容器類(lèi)介紹以及之間的區(qū)別(容器類(lèi)估計(jì)很多人沒(méi)聽(tīng)這個(gè)詞荷鼠,Java容器主要可以劃分為4個(gè)部分:List列表句携、Set集合、Map映射允乐、工具類(lèi)(Iterator迭代器务甥、Enumeration枚舉類(lèi)、Arrays和Collections)喳篇,具體的可以看看這篇博文 Java容器類(lèi))
List,Set,Map的區(qū)別
List和Map的實(shí)現(xiàn)方式以及存儲(chǔ)方式
HashMap的實(shí)現(xiàn)原理
HashMap數(shù)據(jù)結(jié)構(gòu)?
HashMap源碼理解
HashMap如何put數(shù)據(jù)(從HashMap源碼角度講解)态辛?
HashMap怎么手寫(xiě)實(shí)現(xiàn)麸澜?
ConcurrentHashMap的實(shí)現(xiàn)原理
ArrayMap和HashMap的對(duì)比
HashTable實(shí)現(xiàn)原理
TreeMap具體實(shí)現(xiàn)
HashMap和HashTable的區(qū)別
HashMap與HashSet的區(qū)別
HashSet與HashMap怎么判斷集合元素重復(fù)?
集合Set實(shí)現(xiàn)Hash怎么防止碰撞
ArrayList和LinkedList的區(qū)別奏黑,以及應(yīng)用場(chǎng)景
數(shù)組和鏈表的區(qū)別
二叉樹(shù)的深度優(yōu)先遍歷和廣度優(yōu)先遍歷的具體實(shí)現(xiàn)
堆的結(jié)構(gòu)
堆和樹(shù)的區(qū)別
堆和棧在內(nèi)存中的區(qū)別是什么(解答提示:可以從數(shù)據(jù)結(jié)構(gòu)方面以及實(shí)際實(shí)現(xiàn)方面兩個(gè)方面去回答)炊邦?
什么是深拷貝和淺拷貝
手寫(xiě)鏈表逆序代碼
講一下對(duì)樹(shù),B+樹(shù)的理解
講一下對(duì)圖的理解
判斷單鏈表成環(huán)與否熟史?
鏈表翻轉(zhuǎn)(即:翻轉(zhuǎn)一個(gè)單項(xiàng)鏈表)
合并多個(gè)單有序鏈表(假設(shè)都是遞增的)
(四) 線程馁害、多線程和線程池
開(kāi)啟線程的三種方式?
線程和進(jìn)程的區(qū)別蹂匹?
為什么要有線程碘菜,而不是僅僅用進(jìn)程?
run()和start()方法區(qū)別
如何控制某個(gè)方法允許并發(fā)訪問(wèn)線程的個(gè)數(shù)限寞?
在Java中wait和seelp方法的不同忍啸;
談?wù)剋ait/notify關(guān)鍵字的理解
什么導(dǎo)致線程阻塞?
線程如何關(guān)閉履植?
講一下java中的同步的方法
數(shù)據(jù)一致性如何保證计雌?
如何保證線程安全?
如何實(shí)現(xiàn)線程同步玫霎?
兩個(gè)進(jìn)程同時(shí)要求寫(xiě)或者讀凿滤,能不能實(shí)現(xiàn)?如何防止進(jìn)程的同步庶近?
線程間操作List
Java中對(duì)象的生命周期
Synchronized用法
synchronize的原理
談?wù)剬?duì)Synchronized關(guān)鍵字翁脆,類(lèi)鎖,方法鎖拦盹,重入鎖的理解
static synchronized 方法的多線程訪問(wèn)和作用
同一個(gè)類(lèi)里面兩個(gè)synchronized方法鹃祖,兩個(gè)線程同時(shí)訪問(wèn)的問(wèn)題
volatile的原理
談?wù)剉olatile關(guān)鍵字的用法
談?wù)剉olatile關(guān)鍵字的作用
談?wù)凬IO的理解
synchronized 和volatile 關(guān)鍵字的區(qū)別
synchronized與Lock的區(qū)別
ReentrantLock 、synchronized和volatile比較
ReentrantLock的內(nèi)部實(shí)現(xiàn)
lock原理
死鎖的四個(gè)必要條件?
怎么避免死鎖恬口?
對(duì)象鎖和類(lèi)鎖是否會(huì)互相影響校读?
什么是線程池,如何使用?
Java的并發(fā)祖能、多線程歉秫、線程模型
談?wù)剬?duì)多線程的理解
多線程有什么要注意的問(wèn)題?
談?wù)勀銓?duì)并發(fā)編程的理解并舉例說(shuō)明
談?wù)勀銓?duì)多線程同步機(jī)制的理解养铸?
如何保證多線程讀寫(xiě)文件的安全雁芙?
多線程斷點(diǎn)續(xù)傳原理
斷點(diǎn)續(xù)傳的實(shí)現(xiàn)
(五)并發(fā)編程有關(guān)知識(shí)點(diǎn)(這個(gè)是一般Android開(kāi)發(fā)用的少的,所以建議多去看看):
平時(shí)Android開(kāi)發(fā)中對(duì)并發(fā)編程可以做得比較少钞螟,Thread這個(gè)類(lèi)經(jīng)常會(huì)用到兔甘,但是我們想提升自己的話(huà),一定不能停留在表面鳞滨,,我們也應(yīng)該去了解一下java的關(guān)于線程相關(guān)的源碼級(jí)別的東西洞焙。
二、Android面試題
Android面試題包括Android基礎(chǔ)拯啦,還有一些源碼級(jí)別的澡匪、原理這些等。所以想去大公司面試褒链,一定要多看看源碼和實(shí)現(xiàn)方式唁情,常用框架可以試試自己能不能手寫(xiě)實(shí)現(xiàn)一下,鍛煉一下自己甫匹。
(一)Android基礎(chǔ)知識(shí)點(diǎn)
四大組件是什么
四大組件的生命周期和簡(jiǎn)單用法
Activity之間的通信方式
Activity各種情況下的生命周期
橫豎屏切換的時(shí)候甸鸟,Activity 各種情況下的生命周期
Activity與Fragment之間生命周期比較
Activity上有Dialog的時(shí)候按Home鍵時(shí)的生命周期
兩個(gè)Activity 之間跳轉(zhuǎn)時(shí)必然會(huì)執(zhí)行的是哪幾個(gè)方法?
前臺(tái)切換到后臺(tái)赛惩,然后再回到前臺(tái)哀墓,Activity生命周期回調(diào)方法。彈出Dialog喷兼,生命值周期回調(diào)方法篮绰。
Activity的四種啟動(dòng)模式對(duì)比
Activity狀態(tài)保存于恢復(fù)
fragment各種情況下的生命周期
Fragment狀態(tài)保存startActivityForResult是哪個(gè)類(lèi)的方法,在什么情況下使用季惯?
如何實(shí)現(xiàn)Fragment的滑動(dòng)吠各?
fragment之間傳遞數(shù)據(jù)的方式?
Activity 怎么和Service 綁定勉抓?
怎么在Activity 中啟動(dòng)自己對(duì)應(yīng)的Service贾漏?
service和activity怎么進(jìn)行數(shù)據(jù)交互?
Service的開(kāi)啟方式
請(qǐng)描述一下Service 的生命周期
談?wù)勀銓?duì)ContentProvider的理解
說(shuō)說(shuō)ContentProvider藕筋、ContentResolver纵散、ContentObserver 之間的關(guān)系
請(qǐng)描述一下廣播BroadcastReceiver的理解
廣播的分類(lèi)
廣播使用的方式和場(chǎng)景
在manifest 和代碼中如何注冊(cè)和使用BroadcastReceiver?
本地廣播和全局廣播有什么差別?
BroadcastReceiver,LocalBroadcastReceiver 區(qū)別
AlertDialog,popupWindow,Activity區(qū)別
Application 和 Activity 的 Context 對(duì)象的區(qū)別
Android屬性動(dòng)畫(huà)特性
如何導(dǎo)入外部數(shù)據(jù)庫(kù)?
LinearLayout伍掀、RelativeLayout掰茶、FrameLayout的特性及對(duì)比,并介紹使用場(chǎng)景蜜笤。
談?wù)剬?duì)接口與回調(diào)的理解
回調(diào)的原理
寫(xiě)一個(gè)回調(diào)demo
介紹下SurfView
RecycleView的使用
序列化的作用濒蒋,以及Android兩種序列化的區(qū)別
差值器
估值器
Android中數(shù)據(jù)存儲(chǔ)方式
(二)Android源碼相關(guān)分析
Android動(dòng)畫(huà)框架實(shí)現(xiàn)原理
Android各個(gè)版本API的區(qū)別
Requestlayout,onlayout把兔,onDraw沪伙,DrawChild區(qū)別與聯(lián)系
invalidate和postInvalidate的區(qū)別及使用
Activity-Window-View三者的差別
談?wù)剬?duì)Volley的理解
如何優(yōu)化自定義View
低版本SDK如何實(shí)現(xiàn)高版本api?
描述一次網(wǎng)絡(luò)請(qǐng)求的流程
HttpUrlConnection 和 okhttp關(guān)系
Bitmap對(duì)象的理解
looper架構(gòu)
ActivityThread县好,AMS围橡,WMS的工作原理
自定義View如何考慮機(jī)型適配
自定義View的事件
AstncTask+HttpClient 與 AsyncHttpClient有什么區(qū)別?
LaunchMode應(yīng)用場(chǎng)景
AsyncTask 如何使用?
SpareArray原理
請(qǐng)介紹下ContentProvider 是如何實(shí)現(xiàn)數(shù)據(jù)共享的缕贡?
AndroidService與Activity之間通信的幾種方式
IntentService原理及作用是什么某饰?
說(shuō)說(shuō)Activity、Intent善绎、Service 是什么關(guān)系
ApplicationContext和ActivityContext的區(qū)別
SP是進(jìn)程同步的嗎?有什么方法做到同步?
談?wù)劧嗑€程在Android中的使用
進(jìn)程和 Application 的生命周期
封裝View的時(shí)候怎么知道view的大小
RecycleView原理
AndroidManifest的作用與理解
(三)常見(jiàn)的一些原理性問(wèn)題
Handler機(jī)制和底層實(shí)現(xiàn)
Handler诫尽、Thread和HandlerThread的差別
handler發(fā)消息給子線程禀酱,looper怎么啟動(dòng)?
關(guān)于Handler牧嫉,在任何地方new Handler 都是什么線程下?
ThreadLocal原理剂跟,實(shí)現(xiàn)及如何保證Local屬性?
請(qǐng)解釋下在單線程模型中Message酣藻、Handler曹洽、Message Queue、Looper之間的關(guān)系
請(qǐng)描述一下View事件傳遞分發(fā)機(jī)制
Touch事件傳遞流程
事件分發(fā)中的onTouch 和onTouchEvent 有什么區(qū)別辽剧,又該如何使用送淆?
View和ViewGroup分別有哪些事件分發(fā)相關(guān)的回調(diào)方法
View刷新機(jī)制
View繪制流程
自定義控件原理
自定義View如何提供獲取View屬性的接口?
Android代碼中實(shí)現(xiàn)WAP方式聯(lián)網(wǎng)
AsyncTask機(jī)制
AsyncTask原理及不足
如何取消AsyncTask怕轿?
為什么不能在子線程更新UI偷崩?
ANR產(chǎn)生的原因是什么?
ANR定位和修正
oom是什么撞羽?
什么情況導(dǎo)致oom阐斜?
有什么解決方法可以避免OOM?
Oom 是否可以try catch诀紊?為什么谒出?
內(nèi)存泄漏是什么?
什么情況導(dǎo)致內(nèi)存泄漏?
如何防止線程的內(nèi)存泄漏笤喳?
內(nèi)存泄露場(chǎng)的解決方法
內(nèi)存泄漏和內(nèi)存溢出區(qū)別为居?
LruCache默認(rèn)緩存大小
ContentProvider的權(quán)限管理(解答:讀寫(xiě)分離,權(quán)限控制-精確到表級(jí)莉测,URL控制)
如何通過(guò)廣播攔截和abort一條短信颜骤?
廣播是否可以請(qǐng)求網(wǎng)絡(luò)?
廣播引起anr的時(shí)間限制是多少捣卤?
計(jì)算一個(gè)view的嵌套層級(jí)
Activity棧
Android線程有沒(méi)有上限忍抽?
線程池有沒(méi)有上限?
ListView重用的是什么董朝?
Android為什么引入Parcelable鸠项?
有沒(méi)有嘗試簡(jiǎn)化Parcelable的使用?
(四)開(kāi)發(fā)中常見(jiàn)的一些問(wèn)題
ListView 中圖片錯(cuò)位的問(wèn)題是如何產(chǎn)生的?
混合開(kāi)發(fā)有了解嗎子姜?
知道哪些混合開(kāi)發(fā)的方式祟绊?說(shuō)出它們的優(yōu)缺點(diǎn)和各自使用場(chǎng)景?(解答:比如:RN哥捕,weex牧抽,H5,小程序遥赚,WPA等扬舒。做Android的了解一些前- 端js等還是很有好處的);
屏幕適配的處理技巧都有哪些?
服務(wù)器只提供數(shù)據(jù)接收接口凫佛,在多線程或多進(jìn)程條件下讲坎,如何保證數(shù)據(jù)的有序到達(dá)?
動(dòng)態(tài)布局的理解
怎么去除重復(fù)代碼愧薛?
畫(huà)出 Android 的大體架構(gòu)圖
Recycleview和ListView的區(qū)別
ListView圖片加載錯(cuò)亂的原理和解決方案
動(dòng)態(tài)權(quán)限適配方案晨炕,權(quán)限組的概念
Android系統(tǒng)為什么會(huì)設(shè)計(jì)ContentProvider?
下拉狀態(tài)欄是不是影響activity的生命周期
如果在onStop的時(shí)候做了網(wǎng)絡(luò)請(qǐng)求毫炉,onResume的時(shí)候怎么恢復(fù)瓮栗?
Bitmap 使用時(shí)候注意什么?
Bitmap的recycler()
Android中開(kāi)啟攝像頭的主要步驟
ViewPager使用細(xì)節(jié)瞄勾,如何設(shè)置成每次只初始化當(dāng)前的Fragment遵馆,其他的不初始化?
點(diǎn)擊事件被攔截丰榴,但是想傳到下面的View货邓,如何操作?
微信主頁(yè)面的實(shí)現(xiàn)方式
微信上消息小紅點(diǎn)的原理
CAS介紹(這是阿里巴巴的面試題四濒,我不是很了解换况,可以參考博客: CAS簡(jiǎn)介)
三职辨、高級(jí)開(kāi)發(fā)技術(shù)面試題
這里講的是大公司需要用到的一些高端Android技術(shù),這里專(zhuān)門(mén)整理了一個(gè)文檔戈二,希望大家都可以看看舒裤。這些題目有點(diǎn)技術(shù)含量,需要好點(diǎn)時(shí)間去研究一下的觉吭。
(一)圖片
圖片庫(kù)對(duì)比
圖片庫(kù)的源碼分析
圖片框架緩存實(shí)現(xiàn)
LRUCache原理
圖片加載原理
自己去實(shí)現(xiàn)圖片庫(kù)腾供,怎么做?
Glide源碼解析
Glide使用什么緩存鲜滩?
Glide內(nèi)存緩存如何控制大邪楸睢?
(二)網(wǎng)絡(luò)和安全機(jī)制
網(wǎng)絡(luò)框架對(duì)比和源碼分析
自己去設(shè)計(jì)網(wǎng)絡(luò)請(qǐng)求框架徙硅,怎么做榜聂?
okhttp源碼
網(wǎng)絡(luò)請(qǐng)求緩存處理,okhttp如何處理網(wǎng)絡(luò)緩存的
從網(wǎng)絡(luò)加載一個(gè)10M的圖片嗓蘑,說(shuō)下注意事項(xiàng)
TCP的3次握手和四次揮手
TCP與UDP的區(qū)別
TCP與UDP的應(yīng)用
HTTP協(xié)議
HTTP1.0與2.0的區(qū)別
HTTP報(bào)文結(jié)構(gòu)
HTTP與HTTPS的區(qū)別以及如何實(shí)現(xiàn)安全性
如何驗(yàn)證證書(shū)的合法性?
https中哪里用了對(duì)稱(chēng)加密须肆,哪里用了非對(duì)稱(chēng)加密,對(duì)加密算法(如RSA)等是否有了解?
client如何確定自己發(fā)送的消息被server收到?
談?wù)勀銓?duì)WebSocket的理解
WebSocket與socket的區(qū)別
談?wù)勀銓?duì)安卓簽名的理解桩皿。
請(qǐng)解釋安卓為啥要加簽名機(jī)制?
視頻加密傳輸
App 是如何沙箱化豌汇,為什么要這么做?
權(quán)限管理系統(tǒng)(底層的權(quán)限是如何進(jìn)行 grant 的)泄隔?
(三)數(shù)據(jù)庫(kù)
sqlite升級(jí)瘤礁,增加字段的語(yǔ)句
數(shù)據(jù)庫(kù)框架對(duì)比和源碼分析
數(shù)據(jù)庫(kù)的優(yōu)化
數(shù)據(jù)庫(kù)數(shù)據(jù)遷移問(wèn)題
(四)算法
排序算法有哪些?
最快的排序算法是哪個(gè)梅尤?
手寫(xiě)一個(gè)冒泡排序
手寫(xiě)快速排序代碼
快速排序的過(guò)程、時(shí)間復(fù)雜度岩调、空間復(fù)雜度
手寫(xiě)堆排序
堆排序過(guò)程巷燥、時(shí)間復(fù)雜度及空間復(fù)雜度
寫(xiě)出你所知道的排序算法及時(shí)空復(fù)雜度,穩(wěn)定性
二叉樹(shù)給出根節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)号枕,找出從根節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的路徑
給阿里2萬(wàn)多名員工按年齡排序應(yīng)該選擇哪個(gè)算法缰揪?
GC算法(各種算法的優(yōu)缺點(diǎn)以及應(yīng)用場(chǎng)景)
蟻群算法與蒙特卡洛算法
子串包含問(wèn)題(KMP 算法)寫(xiě)代碼實(shí)現(xiàn)
一個(gè)無(wú)序,不重復(fù)數(shù)組葱淳,輸出N個(gè)元素钝腺,使得N個(gè)元素的和相加為M,給出時(shí)間復(fù)雜度赞厕、空間復(fù)雜度艳狐。手寫(xiě)算法
萬(wàn)億級(jí)別的兩個(gè)URL文件A和B,如何求出A和B的差集C(提示:Bit映射->hash分組->多文件讀寫(xiě)效率->磁盤(pán)尋址以及應(yīng)用層面對(duì)尋址的優(yōu)化)
百度POI中如何試下查找最近的商家功能(提示:坐標(biāo)鏡像+R樹(shù))皿桑。
兩個(gè)不重復(fù)的數(shù)組集合中毫目,求共同的元素蔬啡。兩個(gè)不重復(fù)的數(shù)組集合中,這兩個(gè)集合都是海量數(shù)據(jù)镀虐,內(nèi)存中放不下箱蟆,怎么求共同的元素?
一個(gè)文件中有100萬(wàn)個(gè)整數(shù)刮便,由空格分開(kāi)空猜,在程序中判斷用戶(hù)輸入的整數(shù)是否在此文件中。說(shuō)出最優(yōu)的方法
一張Bitmap所占內(nèi)存以及內(nèi)存占用的計(jì)算
2000萬(wàn)個(gè)整數(shù)恨旱,找出第五十大的數(shù)字辈毯?
燒一根不均勻的繩,從頭燒到尾總共需要1個(gè)小時(shí)〗焉保現(xiàn)在有若干條材質(zhì)相同的繩子漓摩,問(wèn)如何用燒繩的方法來(lái)計(jì)時(shí)一個(gè)小時(shí)十五分鐘呢?
求1000以?xún)?nèi)的水仙花數(shù)以及40億以?xún)?nèi)的水仙花數(shù)
5枚硬幣入客,2正3反如何劃分為兩堆然后通過(guò)翻轉(zhuǎn)讓兩堆中正面向上的硬8幣和反面向上的硬幣個(gè)數(shù)相同
時(shí)針走一圈管毙,時(shí)針?lè)轴樦睾蠋状?/p>
N*N的方格紙,里面有多少個(gè)正方形
x個(gè)蘋(píng)果,一天只能吃一個(gè)桌硫、兩個(gè)夭咬、或者三個(gè),問(wèn)多少天可以吃完铆隘?
(五)插件化卓舵、模塊化、組件化膀钠、熱修復(fù)掏湾、增量更新、Gradle
對(duì)熱修復(fù)和插件化的理解
插件化原理分析
模塊化實(shí)現(xiàn)(好處肿嘲,原因)
熱修復(fù),插件化
項(xiàng)目組件化的理解
描述清點(diǎn)擊 Android Studio 的 build 按鈕后發(fā)生了什么
(六)架構(gòu)設(shè)計(jì)和設(shè)計(jì)模式
談?wù)勀銓?duì)Android設(shè)計(jì)模式的理解
MVC MVP MVVM原理和區(qū)別
你所知道的設(shè)計(jì)模式有哪些融击?
項(xiàng)目中常用的設(shè)計(jì)模式
手寫(xiě)生產(chǎn)者/消費(fèi)者模式
寫(xiě)出觀察者模式的代碼
適配器模式,裝飾者模式雳窟,外觀模式的異同尊浪?
用到的一些開(kāi)源框架,介紹一個(gè)看過(guò)源碼的封救,內(nèi)部實(shí)現(xiàn)過(guò)程拇涤。
談?wù)剬?duì)RxJava的理解
RxJava的功能與原理實(shí)現(xiàn)
RxJava的作用,與平時(shí)使用的異步操作來(lái)比的優(yōu)缺點(diǎn)
說(shuō)說(shuō)EventBus作用誉结,實(shí)現(xiàn)方式鹅士,代替EventBus的方式
從0設(shè)計(jì)一款A(yù)pp整體架構(gòu),如何去做惩坑?
說(shuō)一款你認(rèn)為當(dāng)前比較火的應(yīng)用并設(shè)計(jì)(比如:直播APP如绸,P2P金融嘱朽,小視頻等)
談?wù)剬?duì)java狀態(tài)機(jī)理解
Fragment如果在Adapter中使用應(yīng)該如何解耦?
Binder機(jī)制及底層實(shí)現(xiàn)
對(duì)于應(yīng)用更新這塊是如何做的怔接?(解答:灰度搪泳,強(qiáng)制更新,分區(qū)域更新)扼脐?
實(shí)現(xiàn)一個(gè)Json解析器(可以通過(guò)正則提高速度)
統(tǒng)計(jì)啟動(dòng)時(shí)長(zhǎng),標(biāo)準(zhǔn)
(七)性能優(yōu)化
如何對(duì)Android 應(yīng)用進(jìn)行性能分析以及優(yōu)化?
ddms 和 traceView
性能優(yōu)化如何分析systrace岸军?
用IDE如何分析內(nèi)存泄漏?
Java多線程引發(fā)的性能問(wèn)題瓦侮,怎么解決艰赞?
啟動(dòng)頁(yè)白屏及黑屏解決?
啟動(dòng)太慢怎么解決肚吏?
怎么保證應(yīng)用啟動(dòng)不卡頓方妖?
App啟動(dòng)崩潰異常捕捉
自定義View注意事項(xiàng)
現(xiàn)在下載速度很慢,試從網(wǎng)絡(luò)協(xié)議的角度分析原因,并優(yōu)化(提示:網(wǎng)絡(luò)的5層都可以涉及)。
Https請(qǐng)求慢的解決辦法(提示:DNS罚攀,攜帶數(shù)據(jù)党觅,直接訪問(wèn)IP)
如何保持應(yīng)用的穩(wěn)定性
RecyclerView和ListView的性能對(duì)比
ListView的優(yōu)化
RecycleView優(yōu)化
View渲染
Bitmap如何處理大圖,如一張30M的大圖斋泄,如何預(yù)防OOM
java中的四種引用的區(qū)別以及使用場(chǎng)景
強(qiáng)引用置為null杯瞻,會(huì)不會(huì)被回收?
(八)NDK炫掐、jni魁莉、Binder、AIDL募胃、進(jìn)程通信有關(guān)
請(qǐng)介紹一下NDK
什么是NDK庫(kù)?
jni用過(guò)嗎旗唁?
如何在jni中注冊(cè)native函數(shù),有幾種注冊(cè)方式?
Java如何調(diào)用c痹束、c++語(yǔ)言检疫?
jni如何調(diào)用java層代碼?
進(jìn)程間通信的方式参袱?
Binder機(jī)制
簡(jiǎn)述IPC?
什么是AIDL秽梅?
AIDL解決了什么問(wèn)題抹蚀?
AIDL如何使用?
Android 上的 Inter-Process-Communication 跨進(jìn)程通信時(shí)如何工作的企垦?
多進(jìn)程場(chǎng)景遇見(jiàn)過(guò)么环壤?
Android進(jìn)程分類(lèi)?
進(jìn)程和 Application 的生命周期钞诡?
進(jìn)程調(diào)度
談?wù)剬?duì)進(jìn)程共享和線程安全的認(rèn)識(shí)
談?wù)剬?duì)多進(jìn)程開(kāi)發(fā)的理解以及多進(jìn)程應(yīng)用場(chǎng)景
什么是協(xié)程郑现?
(九)framework層湃崩、ROM定制、Ubuntu接箫、Linux之類(lèi)的問(wèn)題
java虛擬機(jī)的特性
談?wù)剬?duì)jvm的理解
JVM內(nèi)存區(qū)域攒读,開(kāi)線程影響哪塊內(nèi)存
對(duì)Dalvik、ART虛擬機(jī)有什么了解辛友?
Art和Dalvik對(duì)比
虛擬機(jī)原理薄扁,如何自己設(shè)計(jì)一個(gè)虛擬機(jī)(內(nèi)存管理,類(lèi)加載废累,雙親委派)
談?wù)勀銓?duì)雙親委派模型理解
JVM內(nèi)存模型邓梅,內(nèi)存區(qū)域
類(lèi)加載機(jī)制
談?wù)剬?duì)ClassLoader(類(lèi)加載器)的理解
談?wù)剬?duì)動(dòng)態(tài)加載(OSGI)的理解
內(nèi)存對(duì)象的循環(huán)引用及避免
內(nèi)存回收機(jī)制、GC回收策略邑滨、GC原理時(shí)機(jī)以及GC對(duì)象
垃圾回收機(jī)制與調(diào)用System.gc()區(qū)別
Ubuntu編譯安卓系統(tǒng)
系統(tǒng)啟動(dòng)流程是什么日缨?(提示:Zygote進(jìn)程 –> SystemServer進(jìn)程 –> 各種系統(tǒng)服務(wù) –> 應(yīng)用進(jìn)程)
大體說(shuō)清一個(gè)應(yīng)用程序安裝到手機(jī)上時(shí)發(fā)生了什么
簡(jiǎn)述Activity啟動(dòng)全部過(guò)程
App啟動(dòng)流程,從點(diǎn)擊桌面開(kāi)始
邏輯地址與物理地址掖看,為什么使用邏輯地址匣距?
Android為每個(gè)應(yīng)用程序分配的內(nèi)存大小是多少?
Android中進(jìn)程內(nèi)存的分配乙各,能不能自己分配定額內(nèi)存墨礁?
進(jìn)程保活的方式
如何保證一個(gè)后臺(tái)服務(wù)不被殺死耳峦?(相同問(wèn)題:如何保證service在后臺(tái)不被kill恩静?)比較省電的方式是什么?
App中喚醒其他進(jìn)程的實(shí)現(xiàn)方式
四蹲坷、跨平臺(tái)Hybrid 開(kāi)發(fā)
flutter
Html5項(xiàng)目實(shí)戰(zhàn)
HTML&CSS&JavaScript 實(shí)戰(zhàn)
WordPress搭建網(wǎng)站項(xiàng)目實(shí)戰(zhàn)
前端Vue架構(gòu)
前端樣式開(kāi)發(fā)
Weex內(nèi)置能力
Weex原生應(yīng)用
Weex擴(kuò)展框架
WeexUI架構(gòu)
介紹你做過(guò)的哪些項(xiàng)目
都使用過(guò)哪些框架驶乾、平臺(tái)?
都使用過(guò)哪些自定義控件循签?
研究比較深入的領(lǐng)域有哪些级乐?
對(duì)業(yè)內(nèi)信息的關(guān)注渠道有哪些?
最近都讀哪些書(shū)县匠?
有沒(méi)有什么開(kāi)源項(xiàng)目风科?
自己最擅長(zhǎng)的技術(shù)點(diǎn),最感興趣的技術(shù)領(lǐng)域和技術(shù)點(diǎn)
項(xiàng)目中用了哪些開(kāi)源庫(kù)乞旦,如何避免因?yàn)橐腴_(kāi)源庫(kù)而導(dǎo)致的安全性和穩(wěn)定性問(wèn)題
實(shí)習(xí)過(guò)程中做了什么贼穆,有什么產(chǎn)出?