写点什么

不服不行!腾讯、阿里 Android 高级面试真题汇总,成功入职阿里

发布于: 2021 年 05 月 14 日

开头

又到年底了,每到这个时候,我们都会慢慢反思,这一年都做了什么?有什么进步?年初的计划都实现了吗?明年年初有跳槽的底气了吗?况且今年的互联网环境太差,需要自己有足够的知识储备,才能够应对这凌冽的寒风。


本文主要是整理了中高级安卓需要会的(或者说面试被频繁问到的内容),主要作为参考大纲,之后会陆续更新每个详细部分,整理成为了一份完整的 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




用户头像

VX公众号:编程进阶路 2020.11.28 加入

还未添加个人简介

评论

发布
暂无评论
不服不行!腾讯、阿里Android高级面试真题汇总,成功入职阿里