Android开发了解这些自然无惧面试,年薪超过80万!
作者:互联网
**工欲善其事必先利其器,要想拿到满意的offer,必须有一定的准备。**以下列出来的东西是笔者认为应该准备的东西
* 简历中提到的,一定要有准备,别给自己挖坑
* Java准备,Java基础,有的公司会扣的很细,Java数据结构相关的类、JUC、Java的语言设计、
* JVM 推荐看一下深入理解Java虚拟机这本书
* 网络部分,推荐看一下图解TCP/IP,图解HTTP这两本书,如果觉得不满足,也可以看一些其他的,如详解TCP/IP卷
* Android Framework,推荐看gityuan的博客,并且自己看一下代码
* 第三方开源库,这个笔者保持这一直读代码的习惯,因此不会刻意准备
* 算法,推荐看一下剑指offer,leetcode随便刷一些题即可,不会太难
* 自己搜集的算法题
* 平常搜集的一些有质量的面试经验
相信每个人都有自己复习的方法,这里就不多说了。
### 面试过程
好的面试官会去发现候选人的优点,他们会根据你简历写的东西进行提问,因为,把简历上写的搞的明明白白,即可。在面试过程中,不要紧张,要突出自己的特点,有意的向自己擅长的方向引导。态度要好,要自信,如果遇到自己不会的,尽量别说自己不会,稍微思考一下,突出自己解决问题的能力。
接下来就是一些面试题。
![](http://www.icode9.com/i/li/?n=2&i=images/20210702/1625198322831767.jpg)
### 面试题
#### 小米公司
**电面-20分钟**
* 简单的沟通自己的工作经历
* 聊聊过去一年做的事情
* 基本上以简历上的为主
**一面-40分钟**
* 介绍之前的工作内容
* 如何统计进程的启动时间,进程启动的过程,activity启动的过程
* jvm gc
* jvm 堆和栈的区别,栈上分配
* 四种引用的区别
* 性能优化
* handler
* binder
* 算法题。最大回文字串。有getmin功能的栈,时间复杂度o1,两数相加
**二面-40分钟**
* 自我介绍
* 插件化
* binder,经过几次内存拷贝,从哪里到哪里,
* okhttp
* 跨进程eventbus
* 设计模式6大原则,常用的
* activity a到b的生命周期变化,view是什么时候显示的
* 事件分发机制
* pms activityrecord
* 看源码的动力
* jni,jnienv作用,jni线程切换
* 性能优化,fd limit
* 算法题。随机打印k个数
**三面-60分钟左右**
* 说下对Android的了解
* 事件分发机制 给了个场景 讨论了半天
* mvp优缺点,mvvm
* 相册搜索,设计。讨论了半天
* 介绍了下他们的业务
* 职业规划
### 美团
面试问的很多问题忘记。一面面试官重技术,广度+深度+基础都要有。
* jvm内存分区,那些是线程私有的
* 类加载机制
* 做的一些事情
* 泛型原理
* 一笔画算法
* 链表去重
* 滑动冲突的一个场景可以了,nestedscrollview
* gradle插件相关
* 打包过程
* tcp/ip协议分层
* http请求包 响应包
* https链接过程
* 做的东西 最有成求感的
* asm aspectj等改字节码的方式
* 职业规划
* 找什么样的工作
* 为什么离职之类的
* hybrid
### 陌陌
陌陌面试题没记住多少,总体来说和其他并无太大差别,就是考察你做的事情是不是真实做过,价值怎么样。
* 数据库优化
* 网络优化
* 多路复用,自己用udp实现quic
* 反射优化
* 介绍下自己做的事情,
* 为什么离职之类的
* apm
* 热修复,tinker
### 快手
>3面技术+1面hr
一面重java,二面重Android、项目和自身特点。
**一面java**
* ArrayList LinkedList区别,场景,时间复杂度
* 写一个单例,volatile的作用,为什么需要
* volatile如何实现,内存屏障
* 如何让GC不回收
* HashMap的数据结构,扰动函数,扩容
* 并发、锁、AQS、CAS之类的
* 线程池,线程池原理,种类。ForkJoin线程池,由于我是最近一段时间内唯一一个提到ForkJoin线程池的,所以比较加分。
* 算法 - 翻转链表
**二面 根据自己的简历问**
* 代理、静态代理、动态代理、CGLIB
* asm javaassit
* java hook,native hook
* 网络协议,tcp三次握手,为什么三次,四次挥手,为什么四次,三次行不行
* 消息队列
* 算法-按层打印二叉树
**三面**
聊业务,聊规划之类的
### 总结
总的来说,现在市场情况一般,招人宁缺毋滥,因此,很多公司喜欢技术能匹配到年限的候选人,在我看来,3年P6,5年P7是他们比较中意的。建议跳槽把握好这两个时间点。
### 写在最后
由于本文罗列的知识点是根据我自身总结出来的,并且由于本人水平有限,无法全部提及,欢迎大神们能补充~
将来我会对上面的知识点一个一个深入学习,也希望有童鞋跟我一起学习,一起进阶。
**提升架构认知不是一蹴而就的,它离不开刻意学习和思考。**
**这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家,**梳理了多年的架构经验,筹备近1个月最新录制的,相信这份视频能给你带来不一样的启发、收获。
![](http://www.icode9.com/i/li/?n=2&i=images/20210702/1625198322276384.jpg)
![](http://www.icode9.com/i/li/?n=2&i=images/20210702/1625198323922781.jpg)
**领取方式:[点击这里获取免费架构视频资料](https://docs.qq.com/doc/DSkNLaERkbnFoS0ZF)**
最近还在整理并复习一些Android基础知识点,有问题希望大家够指出,谢谢。
希望读到这的您能转发分享和关注一下我,以后还会更新技术干货,谢谢您的支持!
**转发+点赞+关注**,第一时间获取最新知识点
Android架构师之路很漫长,一起共勉吧!
标签:Java,无惧,算法,线程,https,80,Android,### 来源: https://blog.51cto.com/u_15285976/2968810