欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

整理一下最近Android面试的提问

程序员文章站 2022-06-24 10:29:44
java相关: 1. public protect private default关键字有什么区别? public:表示可以在任何一个类中被访问; protect:表示可以在自身、子类以及同一包下的类中访问; default:表示可以在自身以及同一包下的类中访问; private:表示只能在自己的类 ......

java相关:

  1. public protect private default关键字有什么区别?

    public:表示可以在任何一个类中被访问;

    protect:表示可以在自身、子类以及同一包下的类中访问;

    default:表示可以在自身以及同一包下的类中访问;

    private:表示只能在自己的类中访问;

  2. extend和implements区别?

    extend用来创建一个类的子类,implements用于声明本类使用一个或多个接口。extend是继承父类,可以使用父类中的方法,而implements是实现多个接口,接口方法必须为空并在此类中重写实现方可使用。implement不能覆盖父类中的方法以及变量,即使子类定义与父类相同的变量或者函数,也会被父类取代掉。  

    

  3. 简述一下内存中堆和栈的区别。哪些数据存放在堆中,哪些存放在栈中?

    栈的优势是存取速度比较快,仅此于CPU中的寄存器,但是栈中的数据大小和生存期必须是确定的,缺乏灵活性,另外栈数据可以共享;而堆的优势是可以动态分配内存大小,生存期也不必告诉编译器,java的垃圾回收机制会自动清理不再使用的数据,但缺点是要在运行时动态分配内存,存取速度慢。

    栈中存放:基本数据类型变量(int, short, long, byte, float, double, boolean, char)

    堆中存放:包装类数据(Interger,String,Double等将基本类型包装起来的类)

  4. 如何让多线程任务切换?

     (这个可能记错了。)

  5. 进程间通信的方式 。

     (1)AIDL,(2)广播,(3)Messenger 
    AIDL :  
           
    Messenger :  
    此处延伸:简述Binder , 

  6. http通信和https通信的区别,https通信的具体流程?

       

  7. 对List,ArrayList这类集合的源码实现方式。

    

Android相关:

  1. 关于Android内存优化,布局优化。

     
    这篇文章有四篇,很详细。 
    此处延伸: 
      (1)内存溢出(OOM)和内存泄露(对象无法被回收)的区别。 
      (2)引起内存泄露的原因

    

    布局优化:

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

    

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