android面試題

Android面試常見問題列表。
Java基礎
簡述題(一)
&和&&的區別。
Get和Post的區別
http response code
udp連接和TCP的不同之處
java中的soft reference是個什麼東西
抽象類和接口的區別
談一下對java中的abstract的理解
Overload和Override的區別
Static Nested Class 和 Inner Class的不同
內部類機制
簡述題(二)
怎麼用接口來連接兩個層的
接口是否可繼承接口? 抽象類是否可實現(implements)接口? 抽象類是否可繼承實體類(concreteclass)?
private和default有什麼區別
java裏的常量是怎麼定義的
類前邊加+final的用處?
finally final finalize的作用?
java中final定義的類有什麼特點
try{ return} catch{} finally{}; return還是finally先執行。
數組有沒有length()這個方法? String有沒有length()這個方法?
是否可以繼承String類?
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
常量final string str=“ab”可不可以變成”abd”,爲什麼?
StringBuffer的作用?
String s=new String(“abc”); new了幾個對象
簡述題(三)
啓動一個線程是用run()還是start()?
多線程有幾種實現方法,都是什麼?同步有幾種實現方法,都是什麼?
同步和異步的區別?
sleep和wait有什麼區別? 一個是用來讓線程休息,一個是用來掛起線程
abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?
簡述題(四)


Error與Exception的區別
Java中的異常處理機制的簡單原理和應用。
Java內存回收機制,GC 垃圾回收機制,垃圾回收的優點和原理。並考慮2種回收機制。
對象Object讀寫的是哪兩個流
反射,求字段的值和方法名
Socket編程的步驟
什麼是Java序列化
簡述題(五)
常見集合及區別
ArrayList和Vector區別,HashMap和HashTable區別
ArrayList和LinkedList的區別
List, Set, Map是否繼承自Collection接口?
hashCode方法的作用
Set裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==還是equals()? 它們有何區別?
當x.equals(y)等於true時,x.hashCode()與y.hashCode()可以不相等,這句話對不對?
JSON,fastjson和GSON的區別
XML,解析XML的幾種方式的原理與特點:DOM、SAX、PULL
MD5加密原理,可否解密。
heap和stack有什麼區別。
用最有效率的方法算出2乘以8等於幾? (2<< 3)
java集合類框架
Android面試——Java相關
Android基礎
Activity
生命週期及橫豎屏切換時生命週期
啓動模式
內存不足時,怎麼保持Activity的一些狀態,在哪個方法裏面做具體操作?
介紹Activity、Service、Broadcast、BroadcastReceiver、Intent、IntentFilter
怎麼在啓動一個activity時就啓動一個service
同一個程序不同的Activity如何放在不同的任務棧中?
如何將一個Activity設置成窗口的樣式
如何退出Activity?如何安全退出已調用多個Activity的Application?
Activity中如何動態的添加Fragment?
activity的啓動過程 參考
不用Service,B頁面爲音樂播放,從A跳到B,再返回,如何使音樂繼續播放?
windows和activity之間關係?
一個activity打開另外一個activity,再打開一個activity?回去的時候發生了什麼操作?
onActivityResult(int requestCode, int resultCode, Intent data)方法的用法;
Fragment
生命週期
Fragment嵌套多個Fragment會出現bug嗎?
Broadcast Receiver
註冊廣播有哪幾種方式,有什麼區別
Android引入廣播機制的用意?
無序廣播、有序廣播 -1000——1000
同優先級,清單文件中上面先收到
Broadcast、Content Provider 和 AIDL的區別和聯繫
Android基礎——廣播接收者BroadcastReceiver
Service
註冊Service需要注意什麼
什麼是Service以及描述下它的生命週期。
Service與Activity怎麼實現通信
Service有哪些啓動方法,有什麼區別,怎樣停用Service?
什麼是IntentService?有何優點?
Service和Activity在同一個線程嗎 main 線程 UI線程
Service裏面可以彈土司麼
如何啓用Service,如何停用Service
什麼時候使用Service?
說說Activity、Intent、Service是什麼關係
AIDL,兩個android應用間的互相調用方法?
AIDL的全稱是什麼?如何工作?能處理哪些類型的數據
Android基礎——Service
Android基礎——IntentService
Android開發指導——Service
Android開發指導——綁定Service
Android開發指導——進程間通信AIDL
ContentProvider
自定義一個contentProvider。
請介紹下ContentProvider是如何實現數據共享的
創建一個屬於你自己的Content provider或者將你的數據添加到一個已經存在的Content provider中,前提是有相同數據類型並且有寫入Content provider的權限。
contentProvider權限;
AsyncTask簡介
Asynctask具體用法?
Asynctask的Do in background方法是怎麼通知UI線程刷新進度條的?
Asynctask的Do in background方法默認是返回 true ,表示任務完成,如果想返回具體的數據呢,怎麼做。如果Activity被銷燬了,還會執行到postexcutd方法嗎?
Android基礎——AsyncTask
ListView
手指快速拖動ListView時,如何處理慣性引起的加載問題;
怎麼實現ListView多種佈局?
ListView與數據庫綁定的實現
怎麼實現一個部分更新的 ListView?
ListView卡頓的原因與性能優化,大量數據時,說的越多越好
UI相關
談談UI中,Padding和Margin有什麼區別?
drawable-hdpi的dpi是什麼意思?
請介紹下Android中常用的五種佈局
Android中px,sp,dip,dp的區別與聯繫
怎麼處理屏幕適配的
簡述題(一)
android開發中怎麼去調試debug
請解釋下Android程序運行時權限與文件系統的權限的區別
JVM 和Dalvik虛擬機的區別
android dvm的進程和Linux的進程應用程序是否爲同一個概念
sim卡的ef文件有何作用。
你如何評價Android系統?優缺點
談下android系統的架構
根據自己的理解描述下android數字簽名
簡述題(二)
如何加載音樂信息,如何改善其效率。
Android程序與java程序的區別?
什麼是 MVC 模式?MVC 模式的好處是什麼?
在Android中MVC的具體體現
簡述Android應用程序的組成
簡述題(三)
如何讓程序自動啓動
如何讓程序不被系統自動銷燬
常見異常,5種運行時異常
運行時異常與一般異常有何異同?
什麼情況會導致Force Close?如何避免?是否捕獲導致其的異常
什麼是 ANR 問題?爲什麼會引起 ANR 問題?
系統上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?請說明原由
ContentValues相關,key是不是任意類型,value是不是任意類型
URL和URI區別用法
數據存儲,數據持久化的方式有哪些
進程優先級
intent-filter屬性及其含義;
如何打開res/raw 目錄中的數據庫文件?
簡述題(四)
NotifactionManager使用原理
Asset與raw都能存放資源,他們有什麼區別?
postInvalidate與invalidate有什麼區別?
notifyDataSetChanged 和notifyDataSetInvalidated的區別
Serializable和Parcelable的區別
子線程中更新UI的方法
Scrollview怎麼判斷是否滑倒底部
ViewPager 怎麼做性能優化
佈局如何動態加載
外存儲器文件遍歷輸出文件名
Intent啓動Activity有幾種方式,請分別簡述
AndroidManifest.xml文件中主要包含哪些信息
列舉常用的Android開源項目及應用場景
文件和數據庫哪個效率高
簡述題(五)
常見設計模式,並手動簡單實現觀察者模式
Handler機制
熱修復
簡述靜默安裝的原理,如何在無需Root權限的情況下實現靜默安裝
什麼是65535問題,如何防止或解決65535問題
簡述實現Android APK插件化的簡單方法
如何實現資源文件的混淆
如何在不引用第三方工具的情況下防止應用二次打包?並對應用進行簡單加固
簡述控制反轉(Inversion of Control)的應用場景
怎麼考慮數據傳輸的安全性
xmpp openfire 基於xmpp openfire smack開發之Android客戶端開發
應用常駐後臺,避免被第三方殺掉的方法,講講你用過的奇淫巧技?
簡述實現Android APK插件化的簡單方法
JS交互
如何實現點擊網站某個鏈接就自動下載一個程序到手機上並自動安裝運行;
java和JS的交互 Android中Java和JavaScript交互
WebView 遠程代碼執行漏洞淺析 解決方案:WebView中的Java與JavaScript提供【安全可靠】的多樣互通方案
Android動畫
Android中有哪些類型的動畫,用屬性動畫實現控件的縮放
不使用動畫,怎麼實現一個動態的 View?
Android中的動畫有哪些,區別是什麼
自定義View
View,SurfaceView,GLSurfaceView有什麼區別
View的繪製
如何自定義ViewGroup?
View刷新機制
android UI中的View如何刷新
事件傳遞及處理機制
View中onTouch,onTouchEvent,onClick的執行順序
JNI
JNI怎麼使用
簡單描述你是如何進行JNI開發的
在哪些情況下java代碼中需要調用C代碼
性能優化
圖片緩存及優化,設計一個圖片緩存加載機制
內存優化,佈局優化,代碼優化
內存溢出OOM是怎麼引起的?怎麼儘量避免OOM問題的出現?
Android中引起內存泄露的原因
Android面試——APP性能優化
數據庫
分頁查詢數據
如何將SQLite數據庫與apk文件一起發佈?
左連接與右連接的區別
描述Sqlite數據庫(類型、關係);
你的項目中Sqlite數據庫中存儲的數據用SharePreference來處理也可以,爲什麼不用SharePreference呢;
網絡編程
Rest API
Volley相關 Volley Android Volley完全解析
如何控制TCP連接時的擁塞 TCP的流量控制和擁塞控制
三次握手 TCP協議中的三次握手和四次揮手(圖解)
Android客戶端和服務端如何使用Token和Session
移動端獲取網絡數據優化
編程算法題
冒泡排序
求素數
單例模式——寫一個Singleton出來
二叉樹遍歷
最長不重複子串(最長重複子串)
有一個一維整型數組int[]data保存的是一張寬爲width,高爲height的圖片像素值信息。請寫一個算法,將該圖片所有的白色不透明(xffffffff)像素點的透明度調整爲5%。
寫一個求遞歸程序 求54321
請使用java或者C++實現反轉單鏈表
生產者、消費者
死鎖(同步嵌套同步且鎖不同)
寫一個多線程實例代碼;
寫一個方法,交換兩個變量的值?
給最外層的rootview,把這個根視圖下的全部button背景設置成紅色,手寫代碼,不許用遞歸
給一串字符串比如abbbcccd,輸出a1b3c3d1,手寫代碼(注意有個別字符可能會出現十次以上的情況)
一個序列,它的形式是12349678,9是最高峯,經歷了一個上升又下降的過程,找出裏面的最大值的位置,要求效率儘可能高
二叉查找樹的刪除操作,手寫代碼
二分查找,手寫代碼
有海量條 url,其中不重複的有300萬條,現在希望挑選出重複出現次數最高的 url,要求效率儘可能的高
一篇英語文章,去掉字符只留下k個,如何去掉才能使這k個字符字典序最小
弗洛伊德算法和 Dijkstra算法的區別?複雜度是多少?講講 Dijkstra算法的具體過程
反轉字符串,要求手寫代碼,優化速度、優化空間
給出兩個無向圖,找出這2個無向圖中相同的環路。手寫代碼
Java實現單例模式的正確姿勢
Android面試——編程算法題
部分答案可參考:CSDN:劍蕭舞蝶
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章