下午2点一面
- Java的四种引用
- HTTPS的原理、握手过程
- 多线程如何同步
- synchronized和ReentrantLock的区别,你认为哪一种比较好,为什么
- 有用过哪些设计模式
- 如何理解依赖反转
- 如何理解多态(这个翻车了)
- 运行时多态/编译时多态(没看这部分...让面试官举了个例子,自己猜测了一下)
- MVC MVP MVVM的区别
- RxJava如何切换线程
- 3个View:A B C,A包含B,B包含C,在onTouchEvent中,对于ACTION_DOWN,A C返回false,B返回ture,对于ACTION_UP,A C返回true,B返回false,问谁消费了ACTION_UP事件.....(好像答得是A,面试官说答错了,不过分析流程的时候把事件分发机制讲明白了,蒙混过关)
- 算法题:找出2个链表的第一个公共节点,要求空间复杂度O(1)
一面结束告诉我不要走,十五分钟之后二面开始
- 上来就是算法题:两个线程如何让线程A等待线程B的运行结果:一开始想用join,后来尝试synchronized,但都存在问题,最后想到了自旋
- 算法题:确定一个数组是不是二叉搜索树的后序遍历
- 聊项目
- Retrofit的实现原理
- Retrofit所使用到的设计模式
- 说一说观察者模式
- 对LiveData监听的的onChange方法什么时候会被调用(这个一开始答偏了,说内部的引用改变才会调用,后来经过提示是生命周期相关)
- 弹出一个Dialog,Activity中LiveData的onchange是否会调用
- 不用第三方库,自己尝试读取Bitmap,需要注意哪些问题(内存溢出和LRUCache)
二面结束告诉我可以休息半小时,等会直接三面...此时脑子已经一片浆糊了
- 聊项目
- 为什么学Android
- 怎么学Android
- 怎么重构项目
- 怎么提升自己
- 算法题:36进制加法
- 以后怎么打算的
- 能实习多久
全部评论
(9) 回帖