面试过程:
一开始问我的是一位大佬,他先是问了我一些c++的知识,我答不上来,于是,就说谈一些比较基础的问题。(不得不说,面试官非常棒,很好说话,不存在故意刁难的行为)
面试过程基本上还算是顺利吧,并没有遇到冷场的现象。以下是能记住的遇到的问题:
- 抽象类与接口
- final,finally,finallize区别
- 锁
- 线程怎么开启,怎么使用
- 线程执行结束,我们怎么知道他结束了,其实是ipc的问题…
- tcp和http区别
- 然后让我手算255.255.250.0子网掩码的IP可以有多少个,应该是8+2,所以是2的10次方个
- 刚开始记错了,32/4是8,记成了6,面试官一直问我确认吗,还好后来反应过来了…
- ndk了解吗
- 音视频为什么编码,常见的音视频格式
- 说一下ffmpeg吧
- opengl是干嘛的,egl是干嘛的
- android怎么往ndk通信与调用的,我答了binder,不对,后来看了书应该是jni
- 算法:java手写一个链表类,同时将两个这个类的有序链表合并
唉,我先弄成了双向链表,说不要这么麻烦,后来合并又忘了把链表往下一个指了
感想
面试期间,面试官提醒了我一些(面试官是真的好),但是让我比较意外的是,我准备了好多android,Java的内容,但是一点都没有问到……感觉有些劲儿使错地方的感觉。
字节考的东西与其他家的有点不一样,但是也是看基础,就比如那个子网掩码的问题
面试官还是很nice的,提醒了我一堆东西,我感觉收获很多。
反问环节
感觉面试官人很好,我当时问了一下他,如果我进了公司成为正式员工,一般做什么工作。他的回答大概是,公司的工作比较多,看我的个人兴趣和能力,我Java和android做的比较多,应该是去做sdk和比较上层的东西。
后来他告诉我,这里的工作,九成都是用c++,问我这个方面有没有问题。当时我心里觉得还是有些挑战,但是为了面试可以顺利一点还是说了没有。
受挫
一面体验还可以,感觉通过的可能性还是比较大的,但是万万没想到,居然挂了。
逆袭
一开始不知道被刷下来了,我还向一些前辈打听字节二面需要注意的事项,想着提前做一些准备。所以,收到“感谢信”的时候还是很受打击的。
当时想着,再投一次,这次一定要进去。
**大概闭关复习了半个月,那段时间里,一直在网上找资料,看别人的面经,刷题库。**虽然找资料的过程很辛苦,但是当时心里憋着一口气,动力很足。
比较幸运的是,当时关注的一个公众号分享了一份大厂的面试真题,还有一套比较系统的Android系统学习资源。后面的大部分时间就是在啃这些资料。
指路↓↓↓
耗时298天,8大模块、3382页66万字,Android开发核心知识笔记!
半个多月后,对自己多了一些自信,决定开始新一轮的战斗。没想到这么顺利就拿到了腾讯的offer。
腾讯面试(丝滑)
腾讯一面,30分钟
时间有点远,记不太清了
不过记得,问的问题都是和比较常问的问题,算法是手写了快排和双重锁单例模式。
腾讯二面(PCG)
时间
18日15时 时长90分钟,60分钟提问,30分钟手写算法
问题
- 说一下帧率,比特率,分辨率
- 常见的帧率是多少,我说是60或者30,然后一直追问电视的帧率是多少,我一直在30和60之间犹豫,一直问我确认吗,最后我说了一下逐行扫描和隔行扫描
- 分辨率,只说了1080*720,好像还是错的,不过说了像素是RGB,最初是8:8:8,因为人眼对不同光线的敏感度不同,所以是9:9:6,现在rgb每一个增加到了10字节
- 点击应用图标以后的流程,AMS是什么
- 启动模式,生命周期
- activity与service通信
- broadcast是什么
- webView知道吗
- HashMap和concurentHashMap
- android优化做过吗,我答了内存泄漏,ANR的情况,并且怎么解决他
- 做过微信小程序吗
- 三次握手,第三次失败会怎么样
我说服务器不能确认客户端有接收信息的能力,会触发超时,重传 - 他说有点不对,怎么知道客户端没有接收
然后我说ICMP有回送与请求的报文,可以确认两台机子是否能够建立连接,并且有超时与源端抑止的差错报文,所以可以知道 - 你会怎么设计三次握手
思考题
- 0.5喜欢足球,0.6喜欢篮球,0.8喜欢排球,同时喜欢足球和篮球的是多少
我说0.3,对方说不对,想了一下,说是0.1到0.5之间
算法
- 求字符串的最大回文字符串
我用了动态规划
(对了写代码使用的是QQ,屏幕共享与打开摄像头)
非技术问题和反问
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://img-blog.csdnimg.cn/img_convert/7889ae5c875acedc280985b775210873.jpeg)
最后
都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。
技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;
我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
2021年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。祝大家2021年万事大吉。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。祝大家2021年万事大吉。