天下互动Android开发工程师一面凉经
📍面试公司:天下互动
🕐面试时间:2/12
💻面试岗位:Android开发工程师
❓面试问题:
一、学习经历与技术栈选择类
- 你为什么从算法竞赛转向后端,又从后端转向安卓开发?
- 你有没有偏向的技术工种?为什么认为多学习技术栈有好处?
- 你是如何学习Kotlin的?具体用了哪些方法和工具?
二、Kotlin 技术深度类
- Kotlin的扩展函数在Java底层是怎么实现的?在JVM里的编译形式和索引方法是什么?
- Kotlin的密封类在Java字节码层面是如何实现的?
- Kotlin中用val声明的常量一定会被翻译成Java的final吗?写final的主要作用是什么?
- Kotlin的非空引用是语法糖,其具体实现原理是什么?为什么Java传空值给Kotlin非空函数会在运行时报错?
三、Compose 相关类
- 你如何理解Compose?它的核心优势是什么?
- Compose的自动重组是怎么实现的?哪些情况会导致Compose频繁重组(比如按钮显示、列表渲染)?
- Compose的性能特点是什么?它能否用于跨端工程(KMP)?其渲染引擎的实现细节你了解吗?
- Compose与第三方库交互时需要注意什么?切换Activity状态时Compose该如何处理?
- 你在项目中使用Compose时,是否涉及自定义View?对安卓触摸事件分发的逻辑了解吗?
四、MVVM 框架相关类
- 你如何理解MVVM框架?它的核心解耦逻辑是什么?
- 以你做的朋友圈模块为例,详细说明MVVM各层(UI、ViewModel、Repository)是如何协作的?
- Compose函数的构造参数中ViewModel对象的生命周期是怎样的?横屏、退到后台等场景下,ViewModel是否会重组?数据能否保留?
五、计算机基础(安卓+通用)类
- 你对数据结构的掌握程度如何?Java中的数据结构实现和C++有什么不同?
- Java中HashMap的实现原理是什么?它如何处理哈希冲突?你了解红黑树的具体结构吗?
- 你了解安卓Activity的生命周期吗?关键函数(onCreate、onStart等)在不同场景下的执行逻辑是什么?
- 你了解安卓的消息机制吗?
六、算法题相关类
- 1000瓶药中有1瓶毒药,最少需要几只小白鼠能找出毒药?1024瓶药的边界情况该如何处理?
- 1000瓶药中有2瓶毒药,该用什么思路解决?需要多少只小白鼠?
七、AI 使用相关类
- 你使用过哪些AI工具?这些工具各自的优劣是什么?
- AIDE和直接与AI模型对话有什么差异?实现AIDE的关键细节有哪些?
- 你在项目开发中,AI使用的占比是多少?如何判断AI生成代码的正确性?
八、Git 使用相关类
- 你在开发需求过程中,如果已经commit了代码但需要修改,且不想新增commit记录,该用什么Git命令处理?
- 你了解Git的底层实现逻辑吗?
九、模拟项目需求类
- 请设计一个安卓模拟APP的数据处理类:接收球的ID和坐标信息,每隔5秒计算并输出每个球出现的次数和平均坐标,该如何实现?
- 这个数据处理类需要考虑哪些核心问题(比如并发、性能、UI阻塞)?AI生成的代码存在哪些性能问题(如新建对象成本、装箱拆箱损耗)?
十、实习相关类
- 你期望通过这次实习获得什么?
- 你的实习时间是否确定?至少能实习多久?能否保证实习期间的出勤(比如回校考试的安排)?
- 你考虑在哪些城市发展?为什么选择这些城市(比如四川)?
- 你认为自己在安卓知识体系上存在哪些不足?
十一、后续任务类
- 请查看Compose函数构造参数中ViewModel对象的生命周期,确认其在横屏、退到后台等场景下是否重组,以及数据是否保留。
🙌面试感想:面试官人挺好,面了一小时40多分钟,问的很底层,受益匪浅,本人只答出来不到三分之一,也指出了我的不足
#发面经攒人品#
查看7道真题和解析