最近工作不忙出去面试了一些单位,就面试情况,总结下:
面试常见问题:
1.Android 部分:
1.Activity Fragment 生命周期方法;
2.Handler机制的原理, 在工作线程中,实现Handler
(主线程中Android已经帮你实现,就是考察看源码、HandlerThread);
3.Thread 工作线程、线程池的使用、管理;
4.单例模式 (考虑线程安全);
5.线程安全关键字synchronized的使用;(修饰方法、同步对象等区别);
6.同步锁的使用;
7.网络请求Retrofit的描述(原理、设计模式、考察看源码)
8.RxJava的使用和描述(观察者模式、考察看源码)
9.性能优化部分:
(1) 内存泄漏和内存溢出(常见情形、解决办法)
(2) 卡顿常见原因和优化方法
(2) ANR的定位问题方法
(3) 流量、电量的损耗优化
(4) UI优化的标签使用、过度绘制、Adapter复用机制、Bitmap复用
(5) APP瘦身
10.热修复技术的原理和使用
11.JavaScript与Java交互 、H5有关的内容 (平安科技)
12.常用设计模式MVC/MVP
2.Java部分:
1.Java基本数据类型
2.HashMap/HashTable的数据结构和区别
3.Parcelable、Serializable的异同
4.UML图、实现、继承、组合、聚合等关系
5.线程间通讯的方式、进程间通讯方式和异同
6.GC机制、手动调用GC、内存抖动
7.ArrayList和LinkedList的性能对比
8.排序算法和算法编程题