整理一下最近Android面試的提問
java相關:
1. public protect private default關鍵字有什麽區別?
public:表示可以在任何一個類中被訪問;
protect:表示可以在自身、子類以及同一包下的類中訪問;
default:表示可以在自身以及同一包下的類中訪問;
private:表示只能在自己的類中訪問;
2. extend和implements區別?
extend用來創建一個類的子類,implements用於聲明本類使用一個或多個接口。extend是繼承父類,可以使用父類中的方法,而implements是實現多個接口,接口方法必須為空並在此類中重寫實現方可使用。implement不能覆蓋父類中的方法以及變量,即使子類定義與父類相同的變量或者函數,也會被父類取代掉。
https://blog.csdn.net/tolcf/article/details/46135645
3. 簡述一下內存中堆和棧的區別。哪些數據存放在堆中,哪些存放在棧中?
棧的優勢是存取速度比較快,僅此於CPU中的寄存器,但是棧中的數據大小和生存期必須是確定的,缺乏靈活性,另外棧數據可以共享;而堆的優勢是可以動態分配內存大小,生存期也不必告訴編譯器,java的垃圾回收機制會自動清理不再使用的數據,但缺點是要在運行時動態分配內存,存取速度慢。
棧中存放:基本數據類型變量(int, short, long, byte, float, double, boolean, char)
堆中存放:包裝類數據(Interger,String,Double等將基本類型包裝起來的類)
4. 如何讓多線程任務切換?
(這個可能記錯了。)
5. 進程間通信的方式 。
(1)AIDL,(2)廣播,(3)Messenger
AIDL : https://www.jianshu.com/p/a8e43ad5d7d2
https://www.jianshu.com/p/0cca211df63c
Messenger : http://blog.csdn.net/lmj623565791/article/details/47017485
此處延伸:簡述Binder , http://blog.csdn.net/luoshengyang/article/details/6618363/
6. http通信和https通信的區別,https通信的具體流程?
http://blog.csdn.net/whatday/article/details/38147103
7. 對List,ArrayList這類集合的源碼實現方式。
https://blog.csdn.net/qq_25868207/article/details/55259978
Android相關:
1. 關於Android內存優化,布局優化。
http://blog.csdn.net/guolin_blog/article/details/42238627
這篇文章有四篇,很詳細。
此處延伸:
(1)內存溢出(OOM)和內存泄露(對象無法被回收)的區別。
(2)引起內存泄露的原因
https://blog.csdn.net/mxm691292118/article/details/51020023
布局優化:http://blog.csdn.net/guolin_blog/article/details/43376527
2. Android相對布局和絕對布局加載順序的區別?
3. 簡述MVC和MVP結構以及他們之間的區別?
https://blog.csdn.net/lmj623565791/article/details/46596109
整理一下最近Android面試的提問