1据途、Java的四大特性
? ? ? ? 抽象:通俗一點(diǎn)理解就是我還沒想好要怎么做,要做什么叙甸,我就可以先給出一個(gè)抽象的類或者方法颖医,需要使用的人或者能完全知道怎么實(shí)現(xiàn)或者怎么做的人去實(shí)現(xiàn)。
? ? ? ? 封裝:把一些共性封裝成一個(gè)統(tǒng)一的類
? ? ? ? 繼承:子類繼承父類裆蒸,重寫父類的方法熔萧,也可以有自己的方法或者拓展。其實(shí)也是多態(tài)性的體現(xiàn)。
? ? ? ? 多態(tài):子類繼承父類佛致,實(shí)例化子類的父類參數(shù)贮缕,實(shí)現(xiàn)子類的方法(我這個(gè)總結(jié)輸出的能力是真差)。給個(gè)例子就差不多能理解(類Tiger繼承父類Cat 俺榆,定義一個(gè)參數(shù)Cat感昼,具體的實(shí)例化是Tiger--Cat cat=new Tiger(); )
2、Java的四種訪問級(jí)別
? ? ? ? private:當(dāng)前類訪問級(jí)別罐脊,只能被該類的其他成員訪問定嗓,換句通俗一點(diǎn)的說法就是只能在該類中使用。
? ? ? ? public:公共訪問級(jí)別萍桌,全局范圍內(nèi)可以被訪問宵溅,可以在整個(gè)包中被使用
? ? ? ? protected:子類訪問級(jí)別,對(duì)于本包和子類可以訪問上炎、使用恃逻,在本包中可以直接訪問,對(duì)于其他包該類的子類也可以直接訪問藕施,使用辛块。
? ? ? ? default:包訪問級(jí)別,只能被本包中的其他成員訪問铅碍、使用润绵。
3、RxJava的實(shí)現(xiàn)原理
? ? ? ? 參考文檔:Android RxJava 2.0:手把手帶你 源碼分析RxJava - 簡(jiǎn)書
4胞谈、Java的類加載機(jī)制
? ? ? ? 參考文檔:Java類加載機(jī)制_清風(fēng)博客-CSDN博客_類加載機(jī)制
5尘盼、RecyclerView和ListView的優(yōu)化方案
? ? ? ? 參考文檔:RecyclerView性能優(yōu)化及高級(jí)使用_smileiam的專欄-CSDN博客_recyclerview優(yōu)化方案
6、Okhttp的實(shí)現(xiàn)原理
? ? ? ? 參考文檔:OkHttp源碼解析 - 簡(jiǎn)書
7烦绳、保證多個(gè)線程按順序執(zhí)行
? ? ? ? 在此提供幾個(gè)方法卿捎,不做具體說明
? ? ? ? 一、線程池?
? ? ? ? 二径密、Thread的join方法
? ? ? ? 三午阵、同步鎖關(guān)鍵字synchronized
8、Handler的實(shí)現(xiàn)原理
? ? ? ? Handler:負(fù)責(zé)發(fā)送消息和處理消息(sendMessage享扔、handleMessage)
? ? ? ? Looper:從MessageQuue(消息隊(duì)列)中把消息提取出來底桂,交給Handler處理
? ? ? ? Message:就是消息,一種載體
? ? ? ? MessageQueue:消息隊(duì)列惧眠,存放消息的地方
9籽懦、MVC、MVP氛魁、MVVM
? ? ? ? mvc:Model暮顺、View厅篓、Controller,View接收到指令傳給Controller捶码,Controller去完成指令處理(數(shù)據(jù)處理羽氮、業(yè)務(wù)邏輯處理)傳給Model進(jìn)行更改狀態(tài)或數(shù)據(jù),Model再把新的數(shù)據(jù)傳給View惫恼,完成View的更改變化乏苦。View->Controller->Model->View
? ? ? ? mvp:Model、View尤筐、Presenter,View?Presenter?Model(View和Model之間不存在直接的數(shù)據(jù)傳遞洞就,Presenter作為中間橋梁盆繁,降低兩者之間的耦合性,View不做任何的業(yè)務(wù)邏輯處理)旬蟋。
? ? ? ? mvvm:Model油昂、View、ViewModel倾贰,View?ViewModel?Model冕碟,(View和Model之間不存在直接的數(shù)據(jù)傳遞,ViewModel作為中間橋梁匆浙,ViewModel和View之間實(shí)現(xiàn)了數(shù)據(jù)的雙向綁定安寺,View發(fā)生變動(dòng),會(huì)自動(dòng)體現(xiàn)再ViewModel當(dāng)中首尼,降低兩者之間的耦合性挑庶,View不做任何的業(yè)務(wù)邏輯處理)
10、Retrofit的實(shí)現(xiàn)原理
? ? ? ? 參考文檔:Retrofit原理解析最簡(jiǎn)潔的思路_風(fēng)花散卻雋世間软能,雪月寥落化雨田-CSDN博客_retrofit原理
11迎捺、WebView與H5交互的優(yōu)化方案
? ? ? ? 參考文檔:WebView性能優(yōu)化的那些事兒……_鄭衛(wèi)超的博客-CSDN博客_webview性能優(yōu)化
12、HashMap和HashTable
????????HashMap:繼承于父類AbstractMap查排;線程不安全凳枝,考慮線程安全的HashMap可以考慮ConcurrentHashMap;Key可為null跋核;
????????HashTable:繼承于父類Dictionary岖瑰;線程安全,每個(gè)方法都加了同步鎖synchronized砂代;Key不能為null锭环。
????????參考文檔:源碼分析hashmap與hashtable的區(qū)別_粉豬泡泡的博客-CSDN博客_hashmap和hashtable的區(qū)別
13、https的實(shí)現(xiàn)原理
? ? ? ? 參考文檔:HTTPS詳解
14泊藕、tcp的三次握手四次揮手辅辩,揮手的次數(shù)為啥會(huì)比握手多一次
????????本來想自己組織語言把這個(gè)問題描述清楚难礼,嘗試了幾次,和別人的文章進(jìn)行對(duì)比玫锋,又蒼白蛾茉,又啰嗦,還是直接給出參考文檔吧撩鹿,如下:HTTP三次握手四次揮手過程(清晰梳理)_Stephen的博客-CSDN博客_http三次握手四次揮手
15谦炬、數(shù)據(jù)庫加密,SharedPreference使用過程中遇到的坑和優(yōu)化
16键思、Flutter與原生(Android)交互
? ? ? ? 通過MethodChannel實(shí)現(xiàn),具體可以看我之前的文章:Flutter 插件(調(diào)用原生控件--Android甫贯,集成Android SDK) - 簡(jiǎn)書吼鳞,Flutter 插件(調(diào)用原生方法--Android) - 簡(jiǎn)書