写点什么

Android 程序员架构之路该如何继续学习,华为架构师深入讲解 Android 开发

用户头像
极客开源
关注
发布于: 刚刚

【一面】

  • 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 吗? (×:没用过,感觉就是个适合处理单次计算任务的方便设施)


我的提问:


  • 面试官是做什么的?

  • 面试官对非科班学生有什么看法?

  • 面试官认为我存在哪些不足?

如何做好面试突击,规划学习方向?

面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。


网上学习 Android 的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。


学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。


同时我还搜集整理 2020 年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android 架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节



在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。



网上学习 Android 的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。


本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

用户头像

极客开源

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
Android程序员架构之路该如何继续学习,华为架构师深入讲解Android开发