整理一下最近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)引起内存泄露的原因

    布局优化:http://blog.csdn.net/guolin_blog/article/details/43376527

  2. Android相对布局和绝对布局加载顺序的区别?

    

  3. 简述MVC和MVP结构以及他们之间的区别?

    https://blog.csdn.net/lmj623565791/article/details/46596109

猜你喜欢

转载自www.cnblogs.com/mrchestnut/p/9238130.html