Android 2018年最近面试中一些常问的面试题总结

时间:2021-05-24 13:49:22

以下是最近面试整理出来的一些常见问题,希望对后面参加面试的朋友有一些帮助.相关参考文章是我觉得还不错的,可能有更好的没有看到,相关问题大家也可以自己找一找资料.

JAVA部分

1.JAVA常用的集合框架(数据结构),(必问,可问的点也很多:结构,特点,原理等).

2.面向对象三大特性是哪些,多态的好处,实现方式有哪些?

3.HashMap的实现原理

4.JVM内存模型,内存管理?GC有哪些算法?结合JVM内存模型哪些会发生GC?

5.类加载机制?双亲委派机制?

6.Http协议,画出握手与挥手过程流程?getpost有什么区别?

7.线程池.线程池构造参数的意义?

8.BlockingQueue(问到线程池基本必问阻塞队列相关)

9.内存泄漏发生的原因,如何排查,如何解决?

10.JNI相关

11.volatile关键字(问的不多,但问到如果回答详细会加分哦)

12.双重锁校验与初始化延迟相关问题

 

 

Android部分

1.activity启动模式,应用场景

2.Activity生命周期,跳转和横竖屏切换生命周期调用.

3.Fragment生命周期,新创建Fragment构造方法中通常不传参数为什么?

4.Activity之间通信,Fragment之间通信,线程进程间通信有哪些?

5.handler机制

6.View绘制流程?要重写哪些方法?(通常会给你假设一场景,要实现一功能问你怎么做)

7.事件传递机制

8.listView优化

9.startServiceBindService的区别,以及混合使用时的情况

10.ServiceintentService区别

11.Service保活

12.ANR原理,造成的原因,如何解决

13.设计模式(至少说出五个,并列举场景)

14.版本新特性,适配相关问题

其他相关问题;

1.StringBufferStringBuilder区别

2.final,finallyfinalize区别,String为什么设计成final

3.MVPMVCMVVM模式比较

4.排序,快排(时间复杂度,空间复杂度等要能解释清楚),冒泡排序,二分法查找,很多回让手写

5.链表的特点,单链表与双向链表的区别.链表反转实现(可能是手写)

6.手写一个死锁.如何避免,synchronizedLock的区别

7.抽象类和接口区别

8.使用过的第三方框架有哪些,(okhttp,Rxjava,EventBus,retrofit等多了解一些,但一定要能够说得清楚,好处是什么,为什么要用它)

9.Rxjava原理,常用操作符.

10.数据库相关