天下互动Android开发工程师一面凉经

📍面试公司:天下互动

🕐面试时间:2/12

💻面试岗位:Android开发工程师

❓面试问题:

一、学习经历与技术栈选择类

  1. 你为什么从算法竞赛转向后端,又从后端转向安卓开发?
  2. 你有没有偏向的技术工种?为什么认为多学习技术栈有好处?
  3. 你是如何学习Kotlin的?具体用了哪些方法和工具?

二、Kotlin 技术深度类

  1. Kotlin的扩展函数在Java底层是怎么实现的?在JVM里的编译形式和索引方法是什么?
  2. Kotlin的密封类在Java字节码层面是如何实现的?
  3. Kotlin中用val声明的常量一定会被翻译成Java的final吗?写final的主要作用是什么?
  4. Kotlin的非空引用是语法糖,其具体实现原理是什么?为什么Java传空值给Kotlin非空函数会在运行时报错?

三、Compose 相关类

  1. 你如何理解Compose?它的核心优势是什么?
  2. Compose的自动重组是怎么实现的?哪些情况会导致Compose频繁重组(比如按钮显示、列表渲染)?
  3. Compose的性能特点是什么?它能否用于跨端工程(KMP)?其渲染引擎的实现细节你了解吗?
  4. Compose与第三方库交互时需要注意什么?切换Activity状态时Compose该如何处理?
  5. 你在项目中使用Compose时,是否涉及自定义View?对安卓触摸事件分发的逻辑了解吗?

四、MVVM 框架相关类

  1. 你如何理解MVVM框架?它的核心解耦逻辑是什么?
  2. 以你做的朋友圈模块为例,详细说明MVVM各层(UI、ViewModel、Repository)是如何协作的?
  3. Compose函数的构造参数中ViewModel对象的生命周期是怎样的?横屏、退到后台等场景下,ViewModel是否会重组?数据能否保留?

五、计算机基础(安卓+通用)类

  1. 你对数据结构的掌握程度如何?Java中的数据结构实现和C++有什么不同?
  2. Java中HashMap的实现原理是什么?它如何处理哈希冲突?你了解红黑树的具体结构吗?
  3. 你了解安卓Activity的生命周期吗?关键函数(onCreate、onStart等)在不同场景下的执行逻辑是什么?
  4. 你了解安卓的消息机制吗?

六、算法题相关类

  1. 1000瓶药中有1瓶毒药,最少需要几只小白鼠能找出毒药?1024瓶药的边界情况该如何处理?
  2. 1000瓶药中有2瓶毒药,该用什么思路解决?需要多少只小白鼠?

七、AI 使用相关类

  1. 你使用过哪些AI工具?这些工具各自的优劣是什么?
  2. AIDE和直接与AI模型对话有什么差异?实现AIDE的关键细节有哪些?
  3. 你在项目开发中,AI使用的占比是多少?如何判断AI生成代码的正确性?

八、Git 使用相关类

  1. 你在开发需求过程中,如果已经commit了代码但需要修改,且不想新增commit记录,该用什么Git命令处理?
  2. 你了解Git的底层实现逻辑吗?

九、模拟项目需求类

  1. 请设计一个安卓模拟APP的数据处理类:接收球的ID和坐标信息,每隔5秒计算并输出每个球出现的次数和平均坐标,该如何实现?
  2. 这个数据处理类需要考虑哪些核心问题(比如并发、性能、UI阻塞)?AI生成的代码存在哪些性能问题(如新建对象成本、装箱拆箱损耗)?

十、实习相关类

  1. 你期望通过这次实习获得什么?
  2. 你的实习时间是否确定?至少能实习多久?能否保证实习期间的出勤(比如回校考试的安排)?
  3. 你考虑在哪些城市发展?为什么选择这些城市(比如四川)?
  4. 你认为自己在安卓知识体系上存在哪些不足?

十一、后续任务类

  1. 请查看Compose函数构造参数中ViewModel对象的生命周期,确认其在横屏、退到后台等场景下是否重组,以及数据是否保留。

🙌面试感想:面试官人挺好,面了一小时40多分钟,问的很底层,受益匪浅,本人只答出来不到三分之一,也指出了我的不足

#发面经攒人品#
全部评论
你是咋记住这么多的
点赞 回复 分享
发布于 今天 20:45 安徽

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务