GitHub: https://github.com/JackyAndroid
CSDN: http://blog.csdn.net/rain_butterfly
面試題來自於百度、小米、樂視、美團、58、獵豹、360、新浪、搜狐內部題庫
熟悉本文中列出的知識點會大大增加通過前兩輪技術面試的幾率。
1.接口的意義(百度)
規范、擴展、回調
2.抽象類的意義(樂視)
為其子類提供一個公共的類型
封裝子類中得重復內容
定義抽象方法,子類雖然有不同的實現 但是定義是一致的
3.內部類的作用(百度,樂視)
4.父類的靜態方法能否被子類重寫,為什么?(獵豹)
不能
子類繼承父類后,用相同的靜態方法和非靜態方法,這時非靜態方法覆蓋父類中的方法(即方法重寫),父類的該靜態方法被隱藏(如果對象是父類則調用該隱藏的方法),另外子類可繼承父類的靜態與非靜態方法,至於方法重載我覺得它其中一要素就是在同一類中,不能說父類中的什么方法與子類里的什么方法是方法重載的體現
5.舉1-2個排序算法,並使用java代碼實現(美團)
http://blog.csdn.net/qy1387/article/details/7752973
6.java虛擬機的特性(百度、樂視)
Java語言的一個非常重要的特點就是與平台的無關性。而使用Java虛擬機是實現這一特點的關鍵。一般的高級語言如果要在不同的平台上運行,至少需要編譯成不同的目標代碼。而引入Java語言虛擬機后,Java語言在不同平台上運行時不需要重新編譯。Java語言使用模式Java虛擬機屏蔽了與具體平台相關的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平台上不加修改地運行。Java虛擬機在執行字節碼時,把字節碼解釋成具體平台上的機器指令執行。
1.數據庫的操作類型有哪些,如何導入外部數據庫?
把原數據庫包括在項目源碼的 res/raw
android系統下數據庫應該存放在 /data/data/com..(package name)/ 目錄下,所以我們需要做的是把已有的數據庫傳入那個目錄下.操作方法是用FileInputStream讀取原數據庫,再用FileOutputStream把讀取到的東西寫入到那個目錄.
2.是否使用過本地廣播,和全局廣播有什么差別?
因廣播數據在本應用范圍內傳播,不用擔心隱私數據泄露的問題。
不用擔心別的應用偽造廣播,造成安全隱患。
相比在系統內發送全局廣播,它更高效。
3.是否使用過intentServer,作用是什么,AIDL解決了什么問題?(小米)
生成一個默認的且與主線程互相獨立的工作者線程來執行所有傳送至 onStartCommand() 方法的Intetnt。
生成一個工作隊列來傳送Intent對象給你的onHandleIntent()方法,同一時刻只傳送一個Intent對象,這樣一來,你就不必擔心多線程的問題。在所有的請求(Intent)都被執行完以后會自動停止服務,所以,你不需要自己去調用stopSelf()方法來停止。
該服務提供了一個onBind()方法的默認實現,它返回null。
提供了一個onStartCommand()方法的默認實現,它將Intent先傳送至工作隊列,然后從工作隊列中每次取出一個傳送至onHandleIntent()方法,在該方法中對Intent對相應的處理。
AIDL (Android Interface Definition Language) 是一種IDL 語言,用於生成可以在Android設備上兩個進程之間進行進程間通信(interprocess communication, IPC)的代碼。如果在一個進程中(例如Activity)要調用另一個進程中(例如Service)對象的操作,就可以使用AIDL生成可序列化的參數。
AIDL IPC機制是面向接口的,像COM或Corba一樣,但是更加輕量級。它是使用代理類在客戶端和實現端傳遞數據。
4.Activity、Window、View三者的差別,fragment的特點?(360)
Activity像一個工匠(控制單元),Window像窗戶(承載模型),View像窗花(顯示視圖)
LayoutInflater像剪刀,Xml配置像窗花圖紙。
fragment 特點
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。