整理一下最近Android面试的提问
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结构以及他们之间的区别?
推荐阅读
-
来探讨一下最近面试问的ThreadLocal问题
-
荐 Android开发7年,疫情期间八家大厂高工的面试经历和真题整理
-
和大家分享一下最近找工作的经历,谨与各位同事共勉 工作面试SharePointSSHJavaScript
-
和大家分享一下最近找工作的经历,谨与各位同事共勉 工作面试SharePointSSHJavaScript
-
整理一下最近Android面试的提问
-
最近面试了一位五年的 Android 开发,一问三不知!还反怼我
-
来探讨一下最近面试问的ThreadLocal问题
-
整理一些最近经常遇到的前端面试题
-
Android开发社招面试经验,应广大粉丝要求讲解一下JNI的那些事 AndoridJNIBAT面试
-
荐 Android开发7年,疫情期间八家大厂高工的面试经历和真题整理