以下是最近面试整理出来的一些常见问题,希望对后面参加面试的朋友有一些帮助.相关参考文章是我觉得还不错的,可能有更好的没有看到,相关问题大家也可以自己找一找资料.
JAVA部分
1.JAVA常用的集合框架(数据结构),(必问,可问的点也很多:结构,特点,原理等).
2.面向对象三大特性是哪些,多态的好处,实现方式有哪些?
3.HashMap的实现原理
4.JVM内存模型,内存管理?GC有哪些算法?结合JVM内存模型哪些会发生GC?
5.类加载机制?双亲委派机制?
6.Http协议,画出握手与挥手过程流程?get与post有什么区别?
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.startService与BindService的区别,以及混合使用时的情况
10.Service与intentService区别
11.Service保活
12.ANR原理,造成的原因,如何解决
13.设计模式(至少说出五个,并列举场景)
14.版本新特性,适配相关问题
其他相关问题;
1.StringBuffer与StringBuilder区别
2.final,finally和finalize区别,String为什么设计成final
3.MVP与MVC或MVVM模式比较
4.排序,快排(时间复杂度,空间复杂度等要能解释清楚),冒泡排序,二分法查找,很多回让手写
5.链表的特点,单链表与双向链表的区别.链表反转实现(可能是手写)
6.手写一个死锁.如何避免,synchronized与Lock的区别
7.抽象类和接口区别
8.使用过的第三方框架有哪些,(okhttp,Rxjava,EventBus,retrofit等多了解一些,但一定要能够说得清楚,好处是什么,为什么要用它)
9.Rxjava原理,常用操作符.
10.数据库相关