當(dāng)前位置:
首頁 >
Android面试题集合
發(fā)布時(shí)間:2025/4/16
45
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Android面试题集合
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Java基礎(chǔ)
簡述題(一)
- &和&&的區(qū)別。
- Get和Post的區(qū)別
- http response code
- udp連接和TCP的不同之處
- java中的soft reference是個(gè)什么東西
- 抽象類和接口的區(qū)別
- 談一下對(duì)java中的abstract的理解
- Overload和Override的區(qū)別
- Static Nested Class 和 Inner Class的不同
- 內(nèi)部類機(jī)制
簡述題(二)
- 怎么用接口來連接兩個(gè)層的
- 接口是否可繼承接口? 抽象類是否可實(shí)現(xiàn)(implements)接口? 抽象類是否可繼承實(shí)體類(concreteclass)?
- private和default有什么區(qū)別
- java里的常量是怎么定義的
- 類前邊加+final的用處?
- finally final finalize的作用?
- java中final定義的類有什么特點(diǎn)
- try{ return} catch{} finally{}; return還是finally先執(zhí)行。
- 數(shù)組有沒有l(wèi)ength()這個(gè)方法? String有沒有l(wèi)ength()這個(gè)方法?
- 是否可以繼承String類?
- swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
- 常量final string str=“ab”可不可以變成”abd”,為什么?
- StringBuffer的作用?
- String s=new String(“abc”); new了幾個(gè)對(duì)象
簡述題(三)
- 啟動(dòng)一個(gè)線程是用run()還是start()?
- 多線程有幾種實(shí)現(xiàn)方法,都是什么?同步有幾種實(shí)現(xiàn)方法,都是什么?
- 同步和異步的區(qū)別?
- sleep和wait有什么區(qū)別? 一個(gè)是用來讓線程休息,一個(gè)是用來掛起線程
- abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized?
- 當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法?
簡述題(四)
- Error與Exception的區(qū)別
- Java中的異常處理機(jī)制的簡單原理和應(yīng)用。
- Java內(nèi)存回收機(jī)制,GC 垃圾回收機(jī)制,垃圾回收的優(yōu)點(diǎn)和原理。并考慮2種回收機(jī)制。
- 對(duì)象Object讀寫的是哪兩個(gè)流
- 反射,求字段的值和方法名
- Socket編程的步驟
- 什么是Java序列化
簡述題(五)
- 常見集合及區(qū)別
- ArrayList和Vector區(qū)別,HashMap和HashTable區(qū)別
- ArrayList和LinkedList的區(qū)別
- List, Set, Map是否繼承自Collection接口?
- hashCode方法的作用
- Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別?
- 當(dāng)x.equals(y)等于true時(shí),x.hashCode()與y.hashCode()可以不相等,這句話對(duì)不對(duì)?
- JSON,fastjson和GSON的區(qū)別
- XML,解析XML的幾種方式的原理與特點(diǎn):DOM、SAX、PULL
- MD5加密原理,可否解密。
- heap和stack有什么區(qū)別。
- 用最有效率的方法算出2乘以8等於幾? (2<< 3)
java集合類框架
http://blog.csdn.net/axi295309066/article/details/54089986
Android面試——Java相關(guān)
Android基礎(chǔ)
Activity
- 生命周期及橫豎屏切換時(shí)生命周期
- 啟動(dòng)模式
- 內(nèi)存不足時(shí),怎么保持Activity的一些狀態(tài),在哪個(gè)方法里面做具體操作?
- 介紹Activity、Service、Broadcast、BroadcastReceiver、Intent、IntentFilter
- 怎么在啟動(dòng)一個(gè)activity時(shí)就啟動(dòng)一個(gè)service
- 同一個(gè)程序不同的Activity如何放在不同的任務(wù)棧中?
- 如何將一個(gè)Activity設(shè)置成窗口的樣式
- 如何退出Activity?如何安全退出已調(diào)用多個(gè)Activity的Application?
- Activity中如何動(dòng)態(tài)的添加Fragment?
- activity的啟動(dòng)過程 參考
- 不用Service,B頁面為音樂播放,從A跳到B,再返回,如何使音樂繼續(xù)播放?
- windows和activity之間關(guān)系?
- 一個(gè)activity打開另外一個(gè)activity,再打開一個(gè)activity?回去的時(shí)候發(fā)生了什么操作?
- onActivityResult(int requestCode, int resultCode, Intent data)方法的用法;
Fragment
- 生命周期
- Fragment嵌套多個(gè)Fragment會(huì)出現(xiàn)bug嗎?
BroadcastReceiver
- 注冊(cè)廣播有哪幾種方式,有什么區(qū)別
- Android引入廣播機(jī)制的用意?
- 無序廣播、有序廣播 -1000——1000
- 同優(yōu)先級(jí),清單文件中上面先收到
- Broadcast、Content Provider 和 AIDL的區(qū)別和聯(lián)系
- Android基礎(chǔ)——廣播接收者BroadcastReceiver
Service
- 注冊(cè)Service需要注意什么
- 什么是Service以及描述下它的生命周期。
- Service與Activity怎么實(shí)現(xiàn)通信
- Service有哪些啟動(dòng)方法,有什么區(qū)別,怎樣停用Service?
- 什么是IntentService?有何優(yōu)點(diǎn)?
- Service和Activity在同一個(gè)線程嗎 main 線程 UI線程
- Service里面可以彈土司么
- 如何啟用Service,如何停用Service
- 什么時(shí)候使用Service?
- 說說Activity、Intent、Service是什么關(guān)系
- AIDL,兩個(gè)android應(yīng)用間的互相調(diào)用方法?
- AIDL的全稱是什么?如何工作?能處理哪些類型的數(shù)據(jù)
- Android基礎(chǔ)——Service
- Android基礎(chǔ)——IntentService
- Android開發(fā)指導(dǎo)——Service
- Android開發(fā)指導(dǎo)——綁定Service
- Android開發(fā)指導(dǎo)——進(jìn)程間通信AIDL
ContentProvider
- 自定義一個(gè)contentProvider。
- 請(qǐng)介紹下ContentProvider是如何實(shí)現(xiàn)數(shù)據(jù)共享的
- 創(chuàng)建一個(gè)屬于你自己的Content provider或者將你的數(shù)據(jù)添加到一個(gè)已經(jīng)存在的Content provider中,前提是有相同數(shù)據(jù)類型并且有寫入Content provider的權(quán)限。
- contentProvider權(quán)限;
AsyncTask簡介
- Asynctask具體用法?
- Asynctask的Do in background方法是怎么通知UI線程刷新進(jìn)度條的?
- Asynctask的Do in background方法默認(rèn)是返回 true ,表示任務(wù)完成,如果想返回具體的數(shù)據(jù)呢,怎么做。如果Activity被銷毀了,還會(huì)執(zhí)行到postexcutd方法嗎?
- Android基礎(chǔ)——AsyncTask
ListView
- 手指快速拖動(dòng)ListView時(shí),如何處理慣性引起的加載問題;
- 怎么實(shí)現(xiàn)ListView多種布局?
- ListView與數(shù)據(jù)庫綁定的實(shí)現(xiàn)
- 怎么實(shí)現(xiàn)一個(gè)部分更新的 ListView?
- ListView卡頓的原因與性能優(yōu)化,大量數(shù)據(jù)時(shí),說的越多越好
UI相關(guān)
- 談UI中,Padding和Margin有什么區(qū)別?
- rawable-hdpi的dpi是什么意思?
- 介紹下Android中常用的五種布局
- ndroid中px,sp,dip,dp的區(qū)別與聯(lián)系
- 么處理屏幕適配的
簡述題(一)
- android開發(fā)中怎么去調(diào)試debug
- 請(qǐng)解釋下Android程序運(yùn)行時(shí)權(quán)限與文件系統(tǒng)的權(quán)限的區(qū)別
- JVM 和Dalvik虛擬機(jī)的區(qū)別
- android dvm的進(jìn)程和Linux的進(jìn)程應(yīng)用程序是否為同一個(gè)概念
- sim卡的ef文件有何作用。
- 你如何評(píng)價(jià)Android系統(tǒng)?優(yōu)缺點(diǎn)
- 談下android系統(tǒng)的架構(gòu)
- 根據(jù)自己的理解描述下android數(shù)字簽名
簡述題(二)
- 如何加載音樂信息,如何改善其效率。
- Android程序與java程序的區(qū)別?
- 什么是 MVC 模式?MVC 模式的好處是什么?
- 在Android中MVC的具體體現(xiàn)
- 簡述Android應(yīng)用程序的組成
簡述題(三)
- 如何讓程序自動(dòng)啟動(dòng)
- 如何讓程序不被系統(tǒng)自動(dòng)銷毀
- 常見異常,5種運(yùn)行時(shí)異常
- 運(yùn)行時(shí)異常與一般異常有何異同?
- 什么情況會(huì)導(dǎo)致Force Close?如何避免?是否捕獲導(dǎo)致其的異常
- 什么是 ANR 問題?為什么會(huì)引起 ANR 問題?
- 系統(tǒng)上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?請(qǐng)說明原由
- ContentValues相關(guān),key是不是任意類型,value是不是任意類型
- URL和URI區(qū)別用法
- 數(shù)據(jù)存儲(chǔ),數(shù)據(jù)持久化的方式有哪些
- 進(jìn)程優(yōu)先級(jí)
- intent-filter屬性及其含義;
- 如何打開res/raw 目錄中的數(shù)據(jù)庫文件?
簡述題(四)
- NotifactionManager使用原理
- Asset與raw都能存放資源,他們有什么區(qū)別?
- postInvalidate與invalidate有什么區(qū)別?
- notifyDataSetChanged 和notifyDataSetInvalidated的區(qū)別
- Serializable和Parcelable的區(qū)別
- 子線程中更新UI的方法
- Scrollview怎么判斷是否滑倒底部
- ViewPager 怎么做性能優(yōu)化
- 布局如何動(dòng)態(tài)加載
- 外存儲(chǔ)器文件遍歷輸出文件名
- Intent啟動(dòng)Activity有幾種方式,請(qǐng)分別簡述
- AndroidManifest.xml文件中主要包含哪些信息
- 列舉常用的Android開源項(xiàng)目及應(yīng)用場景
- 文件和數(shù)據(jù)庫哪個(gè)效率高
簡述題(五)
- 常見設(shè)計(jì)模式,并手動(dòng)簡單實(shí)現(xiàn)觀察者模式
- Handler機(jī)制
- 熱修復(fù)
- 簡述靜默安裝的原理,如何在無需Root權(quán)限的情況下實(shí)現(xiàn)靜默安裝
- 什么是65535問題,如何防止或解決65535問題
- 簡述實(shí)現(xiàn)Android APK插件化的簡單方法
- 如何實(shí)現(xiàn)資源文件的混淆
- 如何在不引用第三方工具的情況下防止應(yīng)用二次打包?并對(duì)應(yīng)用進(jìn)行簡單加固
- 簡述控制反轉(zhuǎn)(Inversion of Control)的應(yīng)用場景
- 怎么考慮數(shù)據(jù)傳輸?shù)陌踩?/li>
- xmpp openfire 基于xmpp openfire smack開發(fā)之Android客戶端開發(fā)
- 應(yīng)用常駐后臺(tái),避免被第三方殺掉的方法,講講你用過的奇淫巧技?
- 簡述實(shí)現(xiàn)Android APK插件化的簡單方法
JS交互
- 如何實(shí)現(xiàn)點(diǎn)擊網(wǎng)站某個(gè)鏈接就自動(dòng)下載一個(gè)程序到手機(jī)上并自動(dòng)安裝運(yùn)行;
- java和JS的交互 Android中Java和JavaScript交互
- WebView 遠(yuǎn)程代碼執(zhí)行漏洞淺析
- 解決方案:WebView中的Java與JavaScript提供【安全可靠】的多樣互通方案
Android動(dòng)畫
- Android中有哪些類型的動(dòng)畫,用屬性動(dòng)畫實(shí)現(xiàn)控件的縮放
- 不使用動(dòng)畫,怎么實(shí)現(xiàn)一個(gè)動(dòng)態(tài)的 View?
- Android中的動(dòng)畫有哪些,區(qū)別是什么
自定義View
- View,SurfaceView,GLSurfaceView有什么區(qū)別
- View的繪制
- 如何自定義ViewGroup?
- View刷新機(jī)制
- android UI中的View如何刷新
- 事件傳遞及處理機(jī)制
- View中onTouch,onTouchEvent,onClick的執(zhí)行順序
- Android事件分發(fā)機(jī)制源碼分析及總結(jié)
JNI
- JNI怎么使用
- 簡單描述你是如何進(jìn)行JNI開發(fā)的
- 在哪些情況下java代碼中需要調(diào)用C代碼
性能優(yōu)化
- 圖片緩存及優(yōu)化,設(shè)計(jì)一個(gè)圖片緩存加載機(jī)制
- 內(nèi)存優(yōu)化,布局優(yōu)化,代碼優(yōu)化
- 內(nèi)存溢出OOM是怎么引起的?怎么盡量避免OOM問題的出現(xiàn)?
- Android中引起內(nèi)存泄露的原因
- Android面試——APP性能優(yōu)化
- Android性能優(yōu)化——避免內(nèi)存泄露(譯)
數(shù)據(jù)庫
- 分頁查詢數(shù)據(jù)
- 如何將SQLite數(shù)據(jù)庫與apk文件一起發(fā)布?
- 左連接與右連接的區(qū)別
- 描述Sqlite數(shù)據(jù)庫(類型、關(guān)系);
- 你的項(xiàng)目中Sqlite數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù)用SharePreference來處理也可以,為什么不用SharePreference呢;
網(wǎng)絡(luò)編程
- Rest API
- Volley相關(guān) Volley Android Volley完全解析
- 如何控制TCP連接時(shí)的擁塞 TCP的流量控制和擁塞控制
- 三次握手 TCP協(xié)議中的三次握手和四次揮手(圖解)
- Android客戶端和服務(wù)端如何使用Token和Session
- 移動(dòng)端獲取網(wǎng)絡(luò)數(shù)據(jù)優(yōu)化
編程算法題
- 冒泡排序
- 求素?cái)?shù)
- 單例模式——寫一個(gè)Singleton出來
- 二叉樹遍歷
- 最長不重復(fù)子串(最長重復(fù)子串)
- 有一個(gè)一維整型數(shù)組int[]data保存的是一張寬為width,高為height的圖片像素值信息。請(qǐng)寫一個(gè)算法,將該圖片所有的白色不透明(xffffffff)- 像素點(diǎn)的透明度調(diào)整為5%。
- 寫一個(gè)求遞歸程序 求54321
- 請(qǐng)使用java或者C++實(shí)現(xiàn)反轉(zhuǎn)單鏈表
- 生產(chǎn)者、消費(fèi)者
- 死鎖(同步嵌套同步且鎖不同)
- 寫一個(gè)多線程實(shí)例代碼;
- 寫一個(gè)方法,交換兩個(gè)變量的值?
- 給最外層的rootview,把這個(gè)根視圖下的全部button背景設(shè)置成紅色,手寫代碼,不許用遞歸
- 給一串字符串比如abbbcccd,輸出a1b3c3d1,手寫代碼(注意有個(gè)別字符可能會(huì)出現(xiàn)十次以上的情況)
- 一個(gè)序列,它的形式是12349678,9是最高峰,經(jīng)歷了一個(gè)上升又下降的過程,找出里面的最大值的位置,要求效率盡可能高
- 二叉查找樹的刪除操作,手寫代碼
- 二分查找,手寫代碼
- 有海量條 url,其中不重復(fù)的有300萬條,現(xiàn)在希望挑選出重復(fù)出現(xiàn)次數(shù)最高的 url,要求效率盡可能的高
- 一篇英語文章,去掉字符只留下k個(gè),如何去掉才能使這k個(gè)字符字典序最小
- 弗洛伊德算法和 Dijkstra算法的區(qū)別?復(fù)雜度是多少?講講 Dijkstra算法的具體過程
- 反轉(zhuǎn)字符串,要求手寫代碼,優(yōu)化速度、優(yōu)化空間
- 給出兩個(gè)無向圖,找出這2個(gè)無向圖中相同的環(huán)路。手寫代碼
Java實(shí)現(xiàn)單例模式的正確姿勢
Android面試——編程算法題
部分答案可參考:CSDN:劍蕭舞蝶
原文出處:于衛(wèi)國,http://yuweiguocn.github.io/android-interview-list/
總結(jié)
以上是生活随笔為你收集整理的Android面试题集合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java数据结构和算法:HashMap的
- 下一篇: Android面试:Java相关