杭州Android面試小結(jié)

最近一直在杭州面試耿戚,想要寫一寫面試中遇到的技術(shù)問題并總結(jié)一下窒典。主要分為java基礎(chǔ)部分和android基礎(chǔ)部分蟆炊。

java基礎(chǔ):

1.對(duì)抽象,封裝瀑志,繼承涩搓,多態(tài)的理解

抽象:就是把業(yè)務(wù)邏輯用程序代碼表示出來。分為數(shù)據(jù)抽象和過程抽象劈猪,數(shù)據(jù)抽象是對(duì)象的屬性昧甘,行為抽象是對(duì)象的行為特征

封裝:封裝是設(shè)置訪問權(quán)限,只把內(nèi)部的數(shù)據(jù)或方法暴露給可信的類或?qū)ο笳降茫瑢?duì)不可信的進(jìn)行隱藏

繼承:把一些有共性的類稱為父類疾层,不同子類可以通過繼承付類重用這一些共性

多態(tài):允許不同類的對(duì)象對(duì)同一消息做出響應(yīng)。方法的重載體現(xiàn)了多態(tài)贡避,向上轉(zhuǎn)型也體現(xiàn)了多態(tài)痛黎。例如:

Animal d = new Dog();

Animal c = new Cat();

在編譯時(shí),并不知道引用的具體對(duì)象是那個(gè)類刮吧,只有當(dāng)程序運(yùn)行時(shí)才能知道湖饱。

2.java中的單例模式怎么寫

餓漢模式
public class Singleton {
    //餓漢模式,沒有達(dá)到懶加載的效果杀捻,在類加載時(shí)就會(huì)實(shí)例化井厌,但是是線程安全的
    private static Singleton singleton = new Singleton();
    private Singleton(){}
    public static Singleton getInstance(){
        return singleton;
    }
}

3.String和StringBuffer、StringBuilder的區(qū)別

String是不可變的致讥,StringBuffer和StringBuider都是可變的仅仆;StringBuffer是線程不安全的,但是效率會(huì)高一些垢袱;StringBuilder是線程安全的墓拜,但是效率低一些。

4.對(duì)java的泛型的理解

泛型请契,即“參數(shù)化類型”咳榜。
創(chuàng)建集合時(shí)就指定集合元素的類型,該集合只能保存其指定類型的元素爽锥,避免使用強(qiáng)制類型轉(zhuǎn)換涌韩。

5.java中的垃圾回收機(jī)制是怎么樣的

5.1.確定刪除的對(duì)象

java中的GC采用對(duì)象引用遍歷的方式判斷該對(duì)象是否被回收,如果該對(duì)象是不可達(dá)的氯夷,則視為垃圾回收

5.2.GC掃描堆棧臣樱,刪除垃圾

刪除對(duì)象的過程中,會(huì)停止所有其他線程

6.如何實(shí)現(xiàn)對(duì)象排序

實(shí)現(xiàn)comparable接口,然后通過Collections.sort()或者Arrays.sort()進(jìn)行排序

7.java中的反射

Java反射機(jī)制可以讓我們?cè)诰幾g期(Compile Time)之外的運(yùn)行期(Runtime)獲得任何一個(gè)類的字節(jié)碼雇毫。包括接口奢啥、變量、方法等信息嘴拢。還可以讓我們?cè)谶\(yùn)行期實(shí)例化對(duì)象桩盲,通過調(diào)用get/set方法獲取變量的值。
反射機(jī)制詳解

8.java中的設(shè)計(jì)模式

1.單例模式
2.適配器模式
3.觀察者模式
4.builder模式
個(gè)人理解它的優(yōu)點(diǎn)是能把一個(gè)復(fù)雜對(duì)象的每一步的構(gòu)造過程解耦
5.代理模式

android中使用的設(shè)計(jì)模式

9.synchronized關(guān)鍵字的應(yīng)用

synchronized詳解

10.HashMap工作原理

HashMap工作原理

Android基礎(chǔ):

1.Activity生命周期是怎么樣的

ActivityA跳轉(zhuǎn)到ActivityB:

a.onPause()-->b.onCreate()-->b.onStart()-->b.onResume()-->a.onStop()

ActivityB再回退到ActivityA:

b.onPause()-->a.onRestart()-->a.onStart()-->a.onResume()-->b.onStop()-->b.onDestory()

若在Activity界面按home鍵又返回:

onPause()-->onStop()-->onRestart()-->onStart()-->onResume()

2.Service的生命周期有哪些

通過start方式啟動(dòng):

onCreate()-->onStartCommand()-->onDestory()

通過bind方式啟動(dòng):

onCreate()-->onBind()-->onUnbind()-->onDestory()

3.對(duì)MVP席吴、MVC赌结、MVVM的了解

4.android中handler的使用

//handler綁定looper,并暴露接口,用于實(shí)現(xiàn)
mHandler = new Handler(Looper.myLooper()){
            @Override
            public void handleMessage(Message msg){
                Log.d(TAG, "獲得了message");
                super.handleMessage(msg);
            }
        };
//創(chuàng)建MessageQueue
looper.prepare();
//發(fā)送Message到MessageQueue
Message message = new Message();
message.sendToTarget();
//輪詢MessageQueue
looper.loop();

5.android中touch事件的傳播

6.有沒有用過EventBus

EventBus使用詳解

7.談?wù)刟ndroid中的性能優(yōu)化

7.1.對(duì)布局的優(yōu)化

1.使用include標(biāo)簽,能達(dá)到對(duì)布局的重用
2.使用merge標(biāo)簽,他可以刪除多余層級(jí)
3.使用ViewStub孝冒,ViewStub加載布局時(shí)柬姚,占用資源很少。ViewStub的應(yīng)用
關(guān)于include,merge和ViewStub

7.2.使用clipRect用于防止overDraw

7.3.ListView滑動(dòng)卡頓:

可能是因?yàn)榛瑒?dòng)過程中正在下載圖片庄涡,也可能是item布局太復(fù)雜

8.有哪些常用的開源框架量承,說說他們的優(yōu)點(diǎn)

網(wǎng)絡(luò)請(qǐng)求 okhttp:會(huì)從很多常用的連接問題中自動(dòng)恢復(fù)。如果您的服務(wù)器配置了多個(gè)IP地址穴店,當(dāng)?shù)谝粋€(gè)IP連接失敗的時(shí)候撕捍,OkHttp會(huì)自動(dòng)嘗試下一個(gè)IP。OkHttp還處理了代理服務(wù)器問題和SSL握手失敗問題
圖片加載 glide:glide會(huì)根據(jù)imageview的大小來確定要加載的圖片的大小泣洞,磁盤緩存時(shí)忧风,也只緩存控件大小的bitmap
View注入 Butter Knife
數(shù)據(jù)存儲(chǔ) DBFlow ORM
熱修復(fù) tinker 熱修復(fù)的原理是用classloader來加載class文件
事件總線框架 EventBus EventBus使用詳解

9.JNI的使用

JNI基礎(chǔ)

10.Android中常用的IPC的方式,以及各自的優(yōu)缺點(diǎn)

1.使用Bundle 數(shù)據(jù)類型支持有限球凰,序列化耗時(shí)
2.使用文件共享 無法即時(shí)通信狮腿,不好處理高并發(fā)
3.使用Messenger 通過Message進(jìn)行傳輸,所以也只能支持bundle數(shù)據(jù)呕诉;適用于輕量級(jí)和地并發(fā) Messenger詳解
4.AIDL AIDL詳解
5.ContentProvider 用于數(shù)據(jù)共享
6.Socket 用于網(wǎng)絡(luò)交換

11.Android中的內(nèi)存泄漏缘厢,內(nèi)存溢出,以及內(nèi)存抖動(dòng)

內(nèi)存泄漏是某些對(duì)象不能被回收
內(nèi)存溢出是由于內(nèi)存不足
內(nèi)存抖動(dòng)是由于頻繁GC

Android性能優(yōu)化典范

12.圖片的處理

13.Fragment與Activity通信甩挫,F(xiàn)ragment之間是怎么通信的

Fragment與Activity之間通過EventBus或者接口的方式通信
Fragment之間通過綁定的Activity中轉(zhuǎn)做通信

14.Fragment的生命周期和Activity生命周期比較

Activity與Fragment生命周期探討

15.android藍(lán)牙開發(fā)流程

Android經(jīng)典藍(lán)牙開發(fā)簡(jiǎn)介

16.android應(yīng)用啟動(dòng)流程

17.android中的緩存策略

分為內(nèi)存緩存(一級(jí)緩存)和磁盤緩存(文件緩存)贴硫,需要特定數(shù)據(jù)時(shí),先去找內(nèi)存中是否存在捶闸,如果沒有再去磁盤中找夜畴,如果都沒有拖刃,則再去進(jìn)行網(wǎng)絡(luò)請(qǐng)求删壮。

18.android組件化開發(fā)

19.兩種注冊(cè)廣播的方法的區(qū)別

清單文件中注冊(cè)廣播是常駐型廣播,不跟隨程序的生命周期兑牡,在代碼中注冊(cè)的廣播正相反

20.如何實(shí)現(xiàn)自定義標(biāo)簽列表

Android自定義標(biāo)簽列表控件

21.Activity四種啟動(dòng)模式

Activity啟動(dòng)模式

22.lrucache在android中的使用及原理

LruCache的使用及原理

23.android圖片處理

android圖片處理

24.android surfaceView

android surfaceView

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末央碟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亿虽,老刑警劉巖菱涤,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異洛勉,居然都是意外死亡粘秆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門收毫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來攻走,“玉大人,你說我怎么就攤上這事此再∥袈В” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵输拇,是天一觀的道長(zhǎng)摘符。 經(jīng)常有香客問我,道長(zhǎng)策吠,這世上最難降的妖魔是什么逛裤? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮猴抹,結(jié)果婚禮上别凹,老公的妹妹穿的比我還像新娘。我一直安慰自己洽糟,他們只是感情好炉菲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坤溃,像睡著了一般拍霜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上薪介,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天祠饺,我揣著相機(jī)與錄音,去河邊找鬼汁政。 笑死道偷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的记劈。 我是一名探鬼主播勺鸦,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼目木!你這毒婦竟也來了换途?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎军拟,沒想到半個(gè)月后剃执,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡懈息,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年肾档,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辫继。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡阁最,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骇两,到底是詐尸還是另有隱情速种,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布低千,位于F島的核電站配阵,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏示血。R本人自食惡果不足惜棋傍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望难审。 院中可真熱鬧瘫拣,春花似錦、人聲如沸告喊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)黔姜。三九已至拢切,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間秆吵,已是汗流浹背淮椰。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留纳寂,地道東北人主穗。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像毙芜,于是被迫代替她去往敵國(guó)和親忽媒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android Studio JNI流程首先在java代碼聲明本地方法 用到native關(guān)鍵字 本地方法不用去實(shí)現(xiàn)...
    MigrationUK閱讀 11,859評(píng)論 7 123
  • 踏羈寒 北國(guó)的冬天爷肝, 嘯風(fēng)穿我耳畔 哪怕獨(dú)我一人猾浦,也愿撿起耳麥 背起行囊陆错,漫步輕吟 只為 這里的黎...
    澤007閱讀 313評(píng)論 0 0
  • 是同學(xué)亦是朋友灯抛,記得再猴子的生日聚會(huì)上認(rèn)識(shí)你金赦,轉(zhuǎn)眼四年了 馬上又入秋天,或許我的秋天有點(diǎn)晚对嚼,就是這樣夹抗,上海這邊的天...
    文字隨風(fēng)閱讀 457評(píng)論 0 0
  • spring-cloud版本:Finchley.SR1 本文是用數(shù)據(jù)庫(kù)的方式存儲(chǔ)配置信息的,本人覺得 git 的方...
    程序之道閱讀 3,956評(píng)論 0 1
  • 夜空里的泡桐花纵竖,像小喇叭一樣漠烧。 泡桐花,久遠(yuǎn)而又美好的回憶靡砌。 記得小時(shí)候已脓,媽媽的學(xué)校里有很多...
    njlinda閱讀 242評(píng)論 0 0