版权声明:本文为原创文章,转载请注明出处。@yami. https://blog.csdn.net/yaminet1024/article/details/84109233
面试官是个非常年轻的小伙子,相当nice,因为是我第一次面试,说话有点语无伦次的感觉,但面试官能get到我要表达的想法,非常感谢。
- 谈谈你做的最满意的一个项目。
- 谈谈你在项目中用到的一些设计模式。
- 谈谈工厂模式
- View的事件分发,用到的是哪个设计模式(话题是被我带过来的)
- 自定义View了解吗?View的绘制流程?
- MVP模式了解吗?说一下。你在项目中什么地方用到MVP模式?用MVP有什么好处?
- Service的两种启动方式,能否在service中执行耗时操作?会有什么影响?两种启动方式分别有什么不同?
- Activity与Service的通信有几种方法?
- 用过那些图片加载框架?分别有什么不同?
- Glide的底层原理是什么?
- Java线程有几种状态?
- 结束线程的几种方式?
- JAVA泛型理解吗?
- 数组和链表各有什么优缺点?
- JAVA的弱引用和软引用,说一下,图片资源应该是用弱引用还是软引用?为什么?
- 哈希冲突是什么?如何解决哈希冲突?当数据量很大的时候呢?
二面:(全程被问的我怀疑人生)
- 说一下你的项目
- okhttp优势,有看过源码吗?(卒)
- 有在项目中用到哪些设计原则(知道设计原则,但要在项目中说出来,卒);
- 有用过哪些分层架构?除了MVP和MVC知道MVVM吗?具体是怎么解耦的,有什么优势?
- 项目中用到哪些设计模式?我答了我经常用到单例,偶尔用到一些适配者模式,观察者模式,那观察者模式怎么实现解耦的?(观察者模式解耦??? 卒)
- 了解IPC吗(我说了Binder的的通信过程)
- Binder池了解吗?它在代理方法里面做了什么事情?它里面tranc...什么方法是干什么的?客户端是怎么知道调用的是哪个方法?(卒)
- 为什么页面会出现滑动卡顿?(我答了内存抖动,导致大量的gc。)
- 为什么gc会导致卡顿?(卒)
- 说说你在项目中遇到的一些困难,怎么解决的?(我答了RecyclerView 错位,3.0Glide之前没有设置超时时间的解决办法)
- 知道RecyclerView错位的根本原因是什么么?有没有看过底层的代码去分析?为什么没有考虑去改Glide的源码呢(卒)
- 你从EventBus源码里面学到了什么新的东西?(eventBus我跟它说我才看一点,卒)
- 自定义Viev onDraw()方法里面需要注意什么?
- 谈一下自定义View里面动画的实现方式,以及一下动画属性(卒)
- Handler的原理,Messagequeue底层是怎么实现的?里面为什么要使用单链表的结构?这样做是为什么?(handler的原理说了出来,问为什么使用单链表-卒)
- 谈谈你在项目做的一些优化。
- Loop.loop为什么不会阻塞主线程?(我给忘了,卒)
- 最后没问我算法,二面(卒)
二面给我感觉就是,他会考察你是不是对项目的所有知识点都了解。特别是你使用到的一些框架,动画,自定义View,然后就是深度,他会一直往深的问。所以还要准备学习并理解透彻一两个开源框架的源码。