Android 程序员必经的实践之路:享学课堂
面试经历
7 月确定想走后开始看各种面经,复习基础知识,月末开始投简历,心里比较中意字节跳动,但深知第一次就面大概率凉凉,就先投了美团、快手。
美团率先约面试,算法题都比较简单,很快做出,但第一次确实很紧张,导致很多基础知识一片凌乱,二面就挂了……
快手可能是投的岗位和能力不大匹配吧,没收到面试通知……
之后就找朋友内推,投了字节跳动,一周后开始电话一面,面完后就那边和朋友玩了两天。结果,过了两天都还没收到回复,以为凉了……
后面,第三天时,二面面试官加了我的微信,开始约二面时间。二面结束后,面试官明确说让我等三面(开心) 。
大约五天后,面试官约了三面。
三面过程很顺利,结束后又过了三天,和 HR 简单聊了聊,然后说还有一个 leader 面。
后面逛 Boss 直聘时有猿辅导要简历,给了过去后也面试了一波,也是白纸写代码,三轮技术和一轮 HR,比较稳妥的过了。
期间有一道题很简单但脑子就是蒙了,面试官引导多次无果后换了个题,很快做出来了。(这里给猿辅导面试官们点赞,体验都很棒)
四面过后,HR 问我还面谁没,我明确说了在面腾讯还差一轮 ,于是 HR 说等我面完腾讯再讨论具体待遇,但 offer 确定了。
字节三面技术题
一面
1:插件化。启动 activity 的 hook 方式。taskAffity。2:okhttp 支持 HTTP2?http2 的功能有哪些?tcp 方面拥塞控制?tsl 的握手和具体的非对称加密算法。非对称名称 3:handler 的 post(Runnable)如何实现的。callback,runnable,msg 的执行优先级。阻塞是怎么实现的?为什么不会阻塞主线程?5:求二叉树中两个节点之间的最大距离。6:206 含义,未修改资源是哪个,302 含义,301 含义 7:多进程通信问题。binder 优势。aidl 生成的 java 类细节。多进程遇到哪些问题?8:动态代理传入的参数都有哪些?非接口的类能实现动态代理吗?ASM 的原理 9:Application 和 Activity 在 Context 的继承树上有何区别?二者使用上有何不同?10:任意一颗二叉树,求最大节点距离
二面
1:设计一个日志系统。2:内存泄露的分类。怎么查看内存泄露的问题 3:touch 事件源码问题。4:组件化的问题。module 和 app 之间的区别。moduler 通信是如何实现的。5:native 奔溃的日志采集,怎么处理?6:注解实现一个提示功能:如果 int 的值大于了 3 需要提示。
三面
1:介绍下 flutter 的启动流程 2:介绍下 flutter 与 weex 的区别 3:组件化介绍一下 4:webview 中与 js 通信的手段有哪些?5:介绍下 flutter_boost 的原理
四面
1:适配器和装饰模式各自特点和使用场景 2:视频编解码是怎么做的 3:三色球排序
最后送福利了,现在关注我可以获取包含源码解析,自定义 View,动画实现,架构分享等。内容难度适中,篇幅精炼,每天只需花上十几分钟阅读即可。大家可以跟我一起探讨,有 flutter—底层开发—性能优化—移动架构—资深 UI 工程师 —NDK 相关专业人员和视频教学资料,还有更多面试题等你来拿
评论