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

知是行的主意,行是知的功夫。这篇文章主要讲述整理一下最近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结构以及他们之间的区别?
【整理一下最近Android面试的提问】https://blog.csdn.net/lmj623565791/article/details/46596109










    推荐阅读