第一章 Java 方面
(一)Java 基礎(chǔ)部分
1.抽象類與接口的區(qū)別永丝?
2.分別講講 final琉预,static玉罐,synchronized 關(guān)鍵字可以修飾什么,以及修飾后的作用岳锁?
3.請(qǐng)簡(jiǎn)述一下String绩衷、StringBuffer和StringBuilder的區(qū)別?
4.“equals”與“==”激率、“hashCode”的區(qū)別和使用場(chǎng)景咳燕?
5.Java 中深拷貝與淺拷貝的區(qū)別?
6.談?wù)凟rror和Exception的區(qū)別乒躺?
7.什么是反射機(jī)制招盲?反射機(jī)制的應(yīng)用場(chǎng)景有哪些?
8.談?wù)勅绾沃貙慹quals()方法嘉冒?為什么還要重寫hashCode()曹货?
9.Java 中 IO 流分為幾種?BIO,NIO,AIO 有什么區(qū)別?
10.談?wù)勀銓?duì)Java泛型中類型擦除的理解,并說(shuō)說(shuō)其局限性讳推?
11.String為什么要設(shè)計(jì)成不可變的顶籽?
12.說(shuō)說(shuō)你對(duì)Java注解的理解?
13.談一談Java成員變量银觅,局部變量和靜態(tài)變量的創(chuàng)建和回收時(shí)機(jī)礼饱?
14.請(qǐng)說(shuō)說(shuō)Java中String.length()的運(yùn)作原理?
(二)Java 集合
1.談?wù)凩ist,Set,Map的區(qū)別究驴?
2.談?wù)凙rrayList和LinkedList的區(qū)別慨仿?
3.請(qǐng)說(shuō)一下HashMap與HashTable的區(qū)別
4.談一談ArrayList的擴(kuò)容機(jī)制?
5.HashMap 的實(shí)現(xiàn)原理纳胧?
6.請(qǐng)簡(jiǎn)述 LinkedHashMap 的工作原理和使用方式?
7.談?wù)剬?duì)于ConcurrentHashMap的理解?
(三)Java 多線程
1.Java 中使用多線程的方式有哪些帘撰?
2.說(shuō)一下線程的幾種狀態(tài)跑慕?
3.如何實(shí)現(xiàn)多線程中的同步?
4.談?wù)劸€程死鎖,如何有效的避免線程死鎖核行?
5.談?wù)劸€程阻塞的原因牢硅?
6.請(qǐng)談?wù)?Thread 中 run() 與 start() 的區(qū)別?
7.synchronized和volatile關(guān)鍵字的區(qū)別芝雪?
8.如何保證線程安全减余?
9.談?wù)凾hreadLocal用法和原理?
10.Java 線程中notify 和 notifyAll有什么區(qū)別惩系?
11.什么是線程池位岔?如何創(chuàng)建一個(gè)線程池?
12.談一談java線程常見的幾種鎖堡牡?
13.談一談線程sleep()和wait()的區(qū)別抒抬?
14.什么是悲觀鎖和樂(lè)觀鎖?
15.什么是BlockingQueue晤柄?請(qǐng)分析一下其內(nèi)部原理并談?wù)勊氖褂脠?chǎng)景擦剑?
16.談一談java線程安全的集合有哪些?
17.Java中為什么會(huì)出現(xiàn)Atomic類芥颈?試分析它的原理和缺點(diǎn)惠勒?
18.說(shuō)說(shuō)ThreadLocal的使用場(chǎng)景?與Synchronized相比有什么特性爬坑?
(四)Java 虛擬機(jī)
1.談一談JAVA垃圾回收機(jī)制纠屋?
2.回答一下什么是強(qiáng)、軟妇垢、弱巾遭、虛引用以及它們之間的區(qū)別?
3.簡(jiǎn)述JVM中類的加載機(jī)制與加載過(guò)程闯估?
4.JVM灼舍、Dalvik、ART三者的原理和區(qū)別涨薪?
5.請(qǐng)談?wù)凧ava的內(nèi)存回收機(jī)制骑素?
6.JMM是什么?它存在哪些問(wèn)題刚夺?該如何解決献丑?
第二章 Android 方面
(一)Android 四大組件相關(guān)
1.Activity 與 Fragment 之間常見的幾種通信方式?
2.LaunchMode 的應(yīng)用場(chǎng)景侠姑?
3.BroadcastReceiver 與 LocalBroadcastReceiver 有什么區(qū)別创橄?
4.對(duì)于 Context,你了解多少?
5.IntentFilter是什么莽红?有哪些使用場(chǎng)景妥畏?
6.談一談startService和bindService的區(qū)別邦邦,生命周期以及使用場(chǎng)景?
7.Service如何進(jìn)行弊硪希活燃辖?
8.簡(jiǎn)單介紹下ContentProvider是如何實(shí)現(xiàn)數(shù)據(jù)共享的?
9.說(shuō)下切換橫豎屏?xí)rActivity的生命周期?
10.Activity中onNewIntent方法的調(diào)用時(shí)機(jī)和使用場(chǎng)景网棍?
11.Intent傳輸數(shù)據(jù)的大小有限制嗎黔龟?如何解決?
12.說(shuō)說(shuō)ContentProvider滥玷、ContentResolver氏身、ContentObserver 之間的關(guān)系?
13.說(shuō)說(shuō)Activity加載的流程罗捎?
(二)Android 異步任務(wù)和消息機(jī)制
HandlerThread 的使用場(chǎng)景和用法观谦?
IntentService 的應(yīng)用場(chǎng)景和使用姿勢(shì)?
AsyncTask 的優(yōu)點(diǎn)和缺點(diǎn)桨菜?
談?wù)勀銓?duì) Activity.runOnUiThread 的理解豁状?
子線程能否更新 UI?為什么倒得?
談?wù)?Handler 機(jī)制和原理泻红?
為什么在子線程中創(chuàng)建 Handler 會(huì)拋異常?
試從源碼角度分析 Handler 的 post 和 sendMessage 方法的區(qū)別和應(yīng)用場(chǎng)景霞掺?
Handler 中有 Loop 死循環(huán)谊路,為什么沒(méi)有阻塞主線程,原理是什么?
(三)Android UI 繪制相關(guān)
Android 補(bǔ)間動(dòng)畫和屬性動(dòng)畫的區(qū)別菩彬?
Window和DecorView是什么?DecorView又是如何和Window建立聯(lián)系的?
簡(jiǎn)述一下 Android 中 UI 的刷新機(jī)制缠劝?
LinearLayout, FrameLayout, RelativeLayout 哪個(gè)效率高, 為什么?
談?wù)凙ndroid的事件分發(fā)機(jī)制骗灶?
談?wù)勛远xView的流程惨恭?
針對(duì)RecyclerView你做了哪些優(yōu)化?
談?wù)勅绾蝺?yōu)化ListView耙旦?
談?wù)勛远xLayoutManager的流程脱羡?
什么是 RemoteViews?使用場(chǎng)景有哪些免都?
談一談獲取View寬高的幾種方法锉罐?
談一談插值器和估值器?
getDimension绕娘、getDimensionPixelOffset 和 getDimensionPixelSize 三者的區(qū)別脓规?
請(qǐng)談?wù)勗创a中StaticLayout的用法和應(yīng)用場(chǎng)景?
有用過(guò)ConstraintLayout嗎险领?它有哪些特點(diǎn)抖拦?
關(guān)于LayoutInflater升酣,它是如何通過(guò) inflate 方法獲取到具體View的?
談一談Fragment懶加載态罪?
談?wù)凴ecyclerView的緩存機(jī)制?
請(qǐng)談?wù)刅iew.inflate和LayoutInflater.inflate的區(qū)別下面?
請(qǐng)談?wù)刬nvalidate()和postInvalidate()方法的區(qū)別和應(yīng)用場(chǎng)景复颈?
談一談自定義View和自定義ViewGroup?
談一談SurfaceView與TextureView的使用場(chǎng)景和用法沥割?
談一談RecyclerView.Adapter的幾種刷新方式有何不同耗啦?
談?wù)勀銓?duì)Window和WindowManager的理解?
談一談Activity机杜,View帜讲,Window三者的關(guān)系?
有了解過(guò)WindowInsets嗎椒拗?它有哪些應(yīng)用似将?
Android中View幾種常見位移方式的區(qū)別?
為什么ViewPager嵌套ViewPager蚀苛,內(nèi)部的ViewPager滾動(dòng)沒(méi)有被攔截在验?
請(qǐng)談?wù)凢ragment的生命周期?
請(qǐng)談?wù)勈裁词峭狡琳希?br>
談一談ViewDragHelper的工作原理堵未?
談一談屏幕刷新機(jī)制腋舌?
(四)Android 性能調(diào)優(yōu)相關(guān)
談?wù)勀銓?duì)Android性能優(yōu)化方面的了解?
一般什么情況下會(huì)導(dǎo)致內(nèi)存泄漏問(wèn)題渗蟹?
自定義 Handler 時(shí)如何有效地避免內(nèi)存泄漏問(wèn)題块饺?
哪些情況下會(huì)導(dǎo)致oom問(wèn)題?
ANR 出現(xiàn)的場(chǎng)景以及解決方案雌芽?
談?wù)凙ndroid中內(nèi)存優(yōu)化的方式授艰?
談?wù)劜季謨?yōu)化的技巧?
Android 中的圖片優(yōu)化方案膘怕?
Android Native Crash問(wèn)題如何分析定位想诅?
談?wù)勗趺唇oapk瘦身?
談?wù)勀闶侨绾蝺?yōu)化App啟動(dòng)過(guò)程的岛心?
談?wù)劥a混淆的步驟来破?
談?wù)勅绾螌?duì)WebView進(jìn)行優(yōu)化?
如何處理大圖的加載忘古?
談?wù)勅绾螌?duì)網(wǎng)絡(luò)請(qǐng)求進(jìn)行優(yōu)化徘禁?
請(qǐng)談?wù)勅绾渭虞dBitmap并防止內(nèi)存溢出?
加粗樣式
(五)Android 中的 IPC
請(qǐng)回答一下Android進(jìn)程間的通信方式髓堪?
請(qǐng)談?wù)勀銓?duì)Binder機(jī)制的理解送朱?
談?wù)?AIDL娘荡?
(六)Android 系統(tǒng) SDK 相關(guān)
請(qǐng)簡(jiǎn)要談?wù)凙ndroid系統(tǒng)的架構(gòu)組成?
SharedPreferences 是線程安全的嗎驶沼?它的 commit 和 apply 方法有什么區(qū)別炮沐?
Serializable和Parcelable的區(qū)別?
請(qǐng)簡(jiǎn)述一下 Android 7.0 的新特性?
談?wù)凙rrayMap和HashMap的區(qū)別回怜?
簡(jiǎn)要說(shuō)說(shuō) LruCache 的原理大年?
為什么推薦用SparseArray代替HashMap?
PathClassLoader和DexClassLoader有何區(qū)別玉雾?
說(shuō)說(shuō)HttpClient與HttpUrlConnection的區(qū)別翔试?并談?wù)劄楹吻罢邥?huì)被替代?
什么是Lifecycle复旬?請(qǐng)分析其內(nèi)部原理和使用場(chǎng)景垦缅?
談一談Android的簽名機(jī)制?
談?wù)劙沧縜pk構(gòu)建的流程驹碍?
簡(jiǎn)述一下Android 8.0壁涎、9.0 分別增加了哪些新特性?
談?wù)凙ndroid10更新了哪些內(nèi)容?如何進(jìn)行適配?
請(qǐng)簡(jiǎn)述Apk的安裝過(guò)程幸冻?
Java與JS代碼如何互調(diào)粹庞?有做過(guò)相關(guān)優(yōu)化嗎?
什么是JNI洽损?具體說(shuō)說(shuō)如何實(shí)現(xiàn)Java與C++的互調(diào)庞溜?
請(qǐng)簡(jiǎn)述從點(diǎn)擊圖標(biāo)開始app的啟動(dòng)流程?
(七)第三方框架分析
談一談LeakCanray的工作原理碑定?
談一談EventBus的原理流码?
談?wù)劸W(wǎng)絡(luò)請(qǐng)求中的攔截器(Interceptor)?
談一談Glide的緩存機(jī)制延刘?
ViewModel的出現(xiàn)是為了解決什么問(wèn)題漫试?并簡(jiǎn)要說(shuō)說(shuō)它的內(nèi)部原理?
請(qǐng)說(shuō)說(shuō)依賴注入框架ButterKnife的實(shí)現(xiàn)原理碘赖?
談一談RxJava背壓原理驾荣?
(八)綜合技術(shù)
請(qǐng)談?wù)勀銓?duì) MVC 和 MVP 的理解?
分別介紹下你所知道Android的幾種存儲(chǔ)方式普泡?
簡(jiǎn)述下熱修復(fù)的原理播掷?
談?wù)勅绾芜m配更多機(jī)型的?
請(qǐng)談?wù)勀闶侨绾芜M(jìn)行多渠道打包的撼班?
MVP中你是如何處理Presenter層以防止內(nèi)存泄漏的歧匈?
如何計(jì)算一張圖片所占的內(nèi)存空間大小砰嘁?
有沒(méi)有遇到64k問(wèn)題件炉,應(yīng)該如何解決勘究?
如何優(yōu)化 Gradle 的構(gòu)建速度?
如何獲取Android設(shè)備唯一ID斟冕?
談一談Android P禁用http對(duì)我們開發(fā)有什么影響口糕?
什么是AOP?在Android中它有哪些應(yīng)用場(chǎng)景磕蛇?
什么是MVVM走净?你是如何將其應(yīng)用于具體項(xiàng)目中的? – 請(qǐng)談?wù)勀闶侨绾螌?shí)現(xiàn)數(shù)據(jù)埋點(diǎn)的孤里?
假如讓你實(shí)現(xiàn)斷點(diǎn)上傳功能,你認(rèn)為應(yīng)該怎樣去做橘洞?
webp和svg格式的圖片各自有什么特點(diǎn)捌袜?應(yīng)該如何在Android中使用?
說(shuō)說(shuō)你是如何進(jìn)行單元測(cè)試的炸枣?以及如何應(yīng)用在MVP和MVVM中虏等?
對(duì)于GIF 圖片加載有什么思路和建議?
為什么要將項(xiàng)目遷移到AndroidX适肠?如何進(jìn)行遷移霍衫?
(九)數(shù)據(jù)結(jié)構(gòu)方面
什么是冒泡排序?如何優(yōu)化侯养?
請(qǐng)用 Java 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的單鏈表敦跌?
如何反轉(zhuǎn)一個(gè)單鏈表?
談?wù)勀銓?duì)時(shí)間復(fù)雜度和空間復(fù)雜度的理解逛揩?
談一談如何判斷一個(gè)鏈表成環(huán)柠傍?
什么是紅黑樹?為什么要用紅黑樹辩稽?
什么是快速排序惧笛?如何優(yōu)化?
說(shuō)說(shuō)循環(huán)隊(duì)列逞泄?
如何判斷單鏈表交叉
(十)設(shè)計(jì)模式
請(qǐng)簡(jiǎn)要談一談單例模式患整?
對(duì)于面向?qū)ο蟮牧蠡驹瓌t了解多少?
請(qǐng)列出幾種常見的工廠模式并說(shuō)明它們的用法喷众?
說(shuō)說(shuō)項(xiàng)目中用到的設(shè)計(jì)模式和使用場(chǎng)景各谚?
什么是代理模式?如何使用侮腹?Android源碼中的代理模式嘲碧?
談一談單例模式,建造者模式父阻,工廠模式的使用場(chǎng)景愈涩?如何合理選擇望抽?
談?wù)勀銓?duì)原型模式的理解?
請(qǐng)談?wù)劜呗阅J皆砑捌鋺?yīng)用場(chǎng)景履婉?
靜態(tài)代理和動(dòng)態(tài)代理的區(qū)別煤篙,什么場(chǎng)景使用?
談一談責(zé)任鏈模式的使用場(chǎng)景毁腿?
(十一)計(jì)算機(jī)網(wǎng)絡(luò)方面
請(qǐng)簡(jiǎn)述 Http 與 Https 的區(qū)別辑奈?
說(shuō)一說(shuō) https,udp,socket 區(qū)別?
請(qǐng)簡(jiǎn)述一次 http 網(wǎng)絡(luò)請(qǐng)求的過(guò)程已烤?
談一談 TCP/IP 三次握手鸠窗,四次揮手?
為什么說(shuō) Http 是可靠的數(shù)據(jù)傳輸協(xié)議胯究?
TCP/IP協(xié)議分為哪幾層稍计?TCP 和 HTTP 分別屬于哪一層?
(十二)Kotlin方面
請(qǐng)簡(jiǎn)述一下什么是 Kotlin裕循?它有哪些特性臣嚣?
Kotlin 中注解 @JvmOverloads 的作用?
Kotlin中List與MutableList的區(qū)別剥哑?
Kotlin中實(shí)現(xiàn)單例的幾種常見方式硅则?
談?wù)勀銓?duì)Kotlin中的 data 關(guān)鍵字的理解?相比于普通類有哪些特點(diǎn)株婴?
什么是委托屬性怎虫?請(qǐng)簡(jiǎn)要說(shuō)說(shuō)其使用場(chǎng)景和原理?
請(qǐng)舉例說(shuō)明Kotlin中with與apply函數(shù)的應(yīng)用場(chǎng)景和區(qū)別督暂?
Kotlin中 Unit 類型的作用以及與Java中 Void 的區(qū)別揪垄?
Kotlin 中 infix 關(guān)鍵字的原理和使用場(chǎng)景?
Kotlin中的可見性修飾符有哪些逻翁?相比于Java有什么區(qū)別饥努?
你覺(jué)得Kotlin與Java混合開發(fā)時(shí)需要注意哪些問(wèn)題?
在Kotlin中八回,何為解構(gòu)酷愧?該如何使用?
在Kotlin中缠诅,什么是內(nèi)聯(lián)函數(shù)溶浴?有什么作用?
談?wù)刱otlin中的構(gòu)造方法管引?有哪些注意事項(xiàng)士败?
談?wù)凨otlin中的Sequence,為什么它處理集合操作更加高效?
請(qǐng)談?wù)凨otlin中的Coroutines谅将,它與線程有什么區(qū)別漾狼?有哪些優(yōu)點(diǎn)?
Kotlin中該如何安全地處理可空類型饥臂?
說(shuō)說(shuō)Kotlin中的Any與Java中的Object有何異同逊躁?
Kotlin中的數(shù)據(jù)類型有隱式轉(zhuǎn)換嗎?為什么隅熙?
Kotlin中集合遍歷有哪幾種方式稽煤?