1,自我介绍
2,描述一下Handler
我把源码里能说的基本都说了一遍
3,一个线程可否有多个Handler,怎么保证只有一个Looper
由此问题衍生出Threadlocal,面试官问Threadlocal如何保证只有一个对象,这里我答的不是很好,Threadlocal其实在Android的looper里是判断了只有一个的逻辑,但真正的使用并不是这个特性
应该是一个 Threadlocal 对象在 ThreadlocalMap里对应一个值
4,fragment生命周期,activity生命周期
我说出了fragment的onAttach onCreateView onActivityCreated 几个独有的,但跟activity直接的顺序好像说错了
5,activity启动模式
A app 的activity 启动 B app 的 activity 栈的变化
4,线程池
线程池的几个参数和意义都描述了一遍,多个线程执行时,核心线程、最大线程、阻塞队列满和不满的情况下执行顺序和过程
怎么解释线程池阻塞队列的阻塞,这里我没太明天面试官对阻塞的理解,答的有点没对口
核心线程是一开始创建还是有任务时创建,这里算是跟面试官的一个讨论吧,我说的是有任务时创建,后来查了下资料,果然面试官说的一开始创建是对的😅
5,lock和synchronized
说了下区别
6,自定义view
讲了项目中的实际应用,顺便说了下事件冲突和解决
7,设计模式
讲了项目中责任链的应用和自己的理解
8,mvp
讲了对mvp的理解,补充说了对职责的理解
9,算法
类似Excel表里列由A到Z,超过26列 然后AA-AZ,再BA-BA,题目是输入n输出对应列的字符串
说了解题思路后,敲代码,讨论了一下基本没问题,然后说注意下边界,算是结束了,最后结束前我手贱多写了一个边界判断,回来后一看原来没必要导致返回值失败,哭泣😭
10,提问
面试官还是很nice的,希望有机会二面
全部评论
(3) 回帖