百度面试给我最大的一个感受就是首先抛出的问题比较基础,然后就刨根问底,问一些比较细的东西,问到你的知识极限为止,所以问到打不出来的话也不要太慌张,一面基础比较重要,二面对算法和设计模式的考察比较多。 记得有点乱,这里就不区分一、二面的具体内容了。
项目提问(在整个项目中你做了些什么,团队是如何分工合作的,有遇到什么问题,这个部分是怎么实现的,这里讲了自定义view的实现和布局优化的内容,估计讲了有十分钟)
面向对象的三大特性
悲观锁和乐观锁的实现
Java序列化的实现(原生序列化、Hessian序列化、JSON序列化)
JVM的内存模型,它创建对象的过程是怎样的?
GC机制
有用过kotlin是吧,你对这个语言作何理解,在一些具体内容上和Java做下比较,kotlin协程
view事件分发机制
haspmap原理(有看过这部分的源码吗?讲深入一点),LinkedHashMap跟HashMap的区别
handler内部原理
有用过什么数据库吗?(MySQL,自学过Redis,但不是很熟练)
MVP和MVCC了解多少
AOP的实现方式有几种
线程同步的方法
进程间通信的方法有哪些?
socket通信知道吗?Android签名机制是怎样的?
Android有哪些类加载器?
Android的布局方式有哪些,你项目里面有做过这块,你觉得哪个使用起来更高效呢?
glide原理知道吗?
git如何操作
Retrofit源码有看过吗?讲一下它的调用过程
TCP的滑动窗口
HTTPS的加密过程(对称加密、非对称加密)
合并了两个排序链表(要我提供两种思路)
常用的设计模式有哪些?单例模式中懒汉式和饿汉式有何区别?来写一个代理模式吧
这两年的行情不太好,跳槽有风险,这是我已经工作两年的朋友在今年的一次秋招经历,希望能给大家一定的参考,社招相对校招难度是更大的,哪怕有两年工作经历,也会对一些底层源码和新工具不了解,从而在面试时败下阵下,这里我给大家一份中高级Android面试题,希望对大家有帮助,私1就行,也可以关注我的专栏,获得更多社招信息。
#百度##社招##安卓工程师##Android##面经#