flutter 下拉刷新背景,学 Android 看这就完事了
正文
面试总共花费 30 天左右,才拿到了 offer。
一面
1.自我介绍 2.项目 3.四大组件 4.activity 生命周期 5.启动模式 6.线程状态 7.网络协议(每一层、还有 TCP 和 UDP)8.会不会网络编程 9.handler10.JVM,内存模型那些 11.GC(有哪些方法那种问题)12.项目中的数据库 13.HashMap、HashTable、ConcurrentHashMap14.反问环节
二面
视频面试。这一面依旧是初试,应该是交叉面?
1.自我介绍 2.项目(这里花了好多时间 emm,他会根据我项目一路提问)3.算法题:字符串根据字典分割的问题。一开始给的解决方法时间复杂度太高,一直要求优化。还有一题我忘了……4.TCP 和 UDP 以及应用场景 5.JAVA 与 JS(为什么都喜欢问这个?)6.其他忘了……也是挺基础的 7.反问这一轮面试很发散,主要还是针对项目进行讨论,问的问题挺有针对性的(主要是项目)。
三面
1.mmap + native 日志优化?2.广播和 EventBus 的区别?3.常用设计模式你了解哪些?4.跨进程通信有哪些?5.简单讲讲 binder 驱动吧?6.跨进程传递大内存数据如何做?7.说说 ConcurrentHashMap 的实现原理说下,初始化大小是多少?8.启动优化怎么优化?9.你写的 rxpay 和 rxlogin 具体怎么实现的?10.kotlin + fullter 方面的
四面
1.单例设计模式都写写,静态内部类是怎么保证线程安全的?2.synchronized 底层实现原理,ReentrantLock 公平锁与非公平锁。3.主线程等待所有线程执行完毕,再执行某个特定任务怎么实现?原理和源码看过没?4.自定义 view 的一般流程,要注意些什么如何优化,点击事件和长按时间分别是怎么实现的?5.四种启动模式,在源码分析中的原理是怎样的?6.讲讲 bindService 的过程,你当初是怎么优化后台服务进程的?7.开发中你都用到了哪些设计模式?说说当时具体的场景。为什么你要用方法工厂,另外两种呢?8.RxJava 在使用过程中碰到了某些不友好的错误一般怎么解决?发现了内存泄露一般怎么解决分析,有没有碰到过系统服务内存泄露的问题?9.你们用的 okhttp ?那你有没有做过一些网络优化呢?比如弱网环境。10.给你个数 1 吧,比如 1000011 里面有几个 1 ?11.快排了解不?最坏的情况是怎样?如果有大量重复数据怎么优化?
五面
1.讲讲 handler 的底层实现原理?2.说说你做的日志记录优化?3.你看过 binder 驱动的源码,说说他的内存映射过程,说说客户端等待服务端处理返回的流程,如果要跨进程传递大内存数据你具体会怎么做?简单写一写吧。4.在公司做过哪些优化?5.过程中遇到的一些最难解决的问题?6.提到了动态修复替换加载 so ,那你知道怎么修复 class 吗?怎么修复资源呢?7.还有什么要问的?
六面(HR 面)
1.项目 2.薪资 3.反问环节
最后
上面这些公司都是时下最受欢迎的互联网大厂,他们的职级、薪资、福利也都讲的差不多了,相信大家都是有梦想和野心的人,心里多少应该都有些想法。
也相信很多人也都在为即将到来的金九银十做准备,也有不少人的目标都是这些公司。
我这边有不少朋友都在这些厂工作,其中也有很多人担任过面试官,上面的资料也差不多都是从朋友那边打探来的。除了上面的信息,我这边还有这些大厂近年来的面试真题及解析,以及一些朋友出于兴趣和热爱一起整理的 Android 时下热门知识点的学习资料。
部分文件:
**本文已被[CODING 开源项目:《Android 学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](
)
收录**
最后自我介绍一下,小编 13 年上海交大毕业,曾经在小公司待过,也去过华为、OPPO 等大厂,18 年进入阿里一直到现在。
深知大多数初中级 Android 工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此也是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
评论