不服不行!腾讯、阿里 Android 高级面试真题汇总,成功入职阿里
开头
又到年底了,每到这个时候,我们都会慢慢反思,这一年都做了什么?有什么进步?年初的计划都实现了吗?明年年初有跳槽的底气了吗?况且今年的互联网环境太差,需要自己有足够的知识储备,才能够应对这凌冽的寒风。
本文主要是整理了中高级安卓需要会的(或者说面试被频繁问到的内容),主要作为参考大纲,之后会陆续更新每个详细部分,整理成为了一份完整的 983 页的 PDF。供大家参考,互相学习。供大家参考,互相学习。
【一面】
Android 四大组件是什么?你最熟悉哪个?
Activity 的生命周期?
旋转屏幕的时候会发生什么?
Java 的常量池?不同 String 赋值方法,引用是否相等?
HashMap 的实现?树化阈值?负载因子?增长系数?
手写代码:O(1)的单链表元素删除(×:倒霉孩子没见过这套路…经过提示也没想出来,可见做题的重要性)
手写代码:获得单链表的最后 N 个元素
【二面】
写过 C++是吧?
知道 STL 容器的 allocator 吗?
手写代码:实现无锁同步 (×:我写成了 CAS 操作,被打断,说特定的 ARM 处理器没有这个同步原语,不能依赖相关指令。包括信号量等也不行。)
手写代码:自定场景,实现一个满足需求的内存池 (×:晕乎乎写出了几个 bug,面试官眼尖…而且自我感觉回收算法不够好,感谢放过)
手写代码:从长序列中找出前 K 大的数字,堆排序
JVM 的垃圾回收算法了解吗?
对象可达性分析,哪些是 GC root?
TCP 和 UDP 的根本区别?
什么场景下使用 UDP?为什么?
提问简历,关于 FFmpeg
我的提问:
面试官是哪个组的?
字节跳动今年是否真的缺人?招聘策略是什么?(答:是。项目和实习经验吃亏没关系,今年招聘重视基础,换去年我肯定不给你过。)
【三面】
介绍项目,高三暑假做的 App
画某个功能的模块图,写出相关接口
这样设计有什么问题?如何改进?
QQ 视频聊天使用什么协议?
视频聊天为何会卡顿?
TCP 流量控制算法的细节? (×:包速率增长的函数关系说不清楚,感谢面试官放过)
假设有节点自带 p 的丢包率,如何判断丢包是因为带宽不够还是随机丢包导致?
如果视频聊天出现卡顿,如何在应用层面缓解?
手写代码:大整数加法,要求代码可读性(×:又写出搞笑 bug 系列,被二面搞傻了)
Android 应用中的卡顿是什么导致的?
Service 和 Thread 有什么区别?Service 的代码是在哪个线程运行的?
AsyncTask?Executor?
AsyncTask 有哪些缺点?
用过 IntentService 吗? (×:没用过,感觉就是个适合处理单次计算任务的方便设施)
我的提问:
面试官是做什么的?
面试官对非科班学生有什么看法?
面试官认为我存在哪些不足?
文末
当你打算跳槽的时候,应该把“跳槽成功后,我能学到什么东西?对我的未来发展有什么好处”放在第一位。这些东西才是真正引导你的关键。在跳槽之前尽量“物尽其用”,把手头上的工作做好,最好是完成了某个项目或是得到提升之后再走。跳槽不是目的,而是为了达到最终职业目标的手段
最后祝大家工作升职加薪,面试拿到心仪 Offer.为此我在文末整理了一些关于移动开发者需要的资料,欢迎大家免费领取领取方式:点击我的GitHub
评论