简言
android大环境下整体薪酬有所降低,很多企业愿意招1-3年经验的能做出东西就行,高级的开发一直缺少,但是招高级的岗位也少啊。所以还是需要提高自身竞争力。现在将最近面试的题目都写下来总结下,也为后面的人做个参考。面试第一天记录,后续会持续添加。
面试
java部分
1、java的四种引用方式以及使用场景
2、线程池ThreadPoolExecutor其参数和4种线程池,https://www.jianshu.com/p/ae67972d1156
3、javaGC回收算法,年代区分 https://dwz.cn/9c8stiJo
4、谈谈你对socket的理解。
https://blog.csdn.net/ccit0519/article/details/24790971
5、 TCP和UDP有什么区别? 回答网络层关系、TCP和UDP的区别,TCP三次握手(一定要讲清楚,SYN、ACK等标记位怎样的还有报文结构都需要熟悉下),四次挥手。为什么要三次握手?DDoS攻击。为什么握手三次,挥手要四次?Http报文结构,一次网络请求的过程是怎样的?Http和Https有什么不同?SSL/TLS是怎么进行加密握手的?证书怎么校验?对称性加密算法和非对称加密算法有哪些?挑一个熟悉的加密算法简单介绍下?DNS解析是怎样的?
6、数据结构,广度优先、深度优先
7、有没有遇到黏包的问题
8、LRUCache原理及其数据结构,LinkedHashMap。
https://www.jianshu.com/p/b49a111147ee
9、有用到什么设计模式吗?
Android面试
1、Activity的生命周期 ,四种启动模式。怎么和fragment进行通信
2、布局的适配
3、广播的注册方式
4、消息机制Handler原理源码,内存泄漏的原因和处理方式,MessageQueue用了什么数据结构
5、动画,贝塞尔曲线。拿出了一个动画效果问怎么实现。
6、事件分发原理,怎么解决一些上下左右冲突的问题。可以阅读android开发探索艺术的3.4以及3.5节
7、进程间通讯有哪些方式
8、性能优化,listview优化,图片处理的方式
9、开源框架的原理eventbus,
okhttp : https://dwz.cn/M7fL5Wdv
rxjava,glide,retrofit 其中retrofit 问操作符,怎么合并请求。
10、做过哪些自定义控件,组合控件,步骤是什么
11、进程保活,进程级别,关键在于降低oom_adj的值,以及如何使得我们应用占的内存最少。
https://www.jianshu.com/p/1da4541b70ad
12、IntentService原理,关注内部的HandlerThread,onHandleIntent((Intent)msg.obj)执行耗时操作。