1. 程式人生 > >整理一下最近Android面試的提問

整理一下最近Android面試的提問

VC 順序 大小 機制 速度慢 efault 結構 基本類 取代

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面試的提問