跳到主要内容

腾讯暑期实习面经

· 阅读需 4 分钟

时间:2025-5-20

算法编程题

合并有序链表

  • 时间限制:20分钟
  • 环境:没有开摄像头,独立完成

面试问题(按录音顺序)

注:开始提问后才开摄像头

  1. 请你简单的自我介绍一下,可以主要介绍一下你简历里列的这几个项目

  2. 先聊一下那个校园圈的APP,这里前端是用Flutter结合部分Rust模块来开发的,你可以讲一下这里Flutter是怎么调用Rust模块的吗?

  3. 可以具体说一下FFI是怎么调的吗?你了解它内部调用的细节吗?

  4. 那这里涉及切线程吗?还是它是在同一个线程调用的吗?

  5. 但是ISOLATE的话,它跟主线程应该是有数据隔离的吧?然后这里的问题你是怎么处理的呢?

  6. 那这里发送和接收是会涉及到数据的序列化吗?还是你的数据信息具体是怎么传递的呢?

  7. 那这里传递的数据的量体是怎么样的呢?

  8. 但是这个你还是不能避免到序列化和反序列化?

  9. 那你在app里面状态管理是怎么做的呢?

  10. 在这个GETX框架里面,你应该用过那个OVX那个函数吧?了解它具体是怎么实现组件刷新的吗?为什么一个数据的变化就可以触发一个组件的刷新?

  11. 但是它是怎么做到局部刷新的呢?比如说如果你用传统的SetState的话,它可能是整个Widget都刷新的。然后用GETX的话,它可能只是监听的那一部分在刷新。这里是怎么做到的,你了解吗?

  12. 做Flutter开发应该遇到比较多的Build Context,你可以讲一下你了解的Build Context吗?这个Build Context是什么作用?然后有什么开发的时候的注意事项?

  13. 这里拓展是用什么东西拓展?

  14. 然后比如说在父组件绑定了一个数据,你在子组件是怎么取的呢?

  15. 除了这个Provider,你还了解什么别的使用Build Context的注意事项吗?

  16. 那你也在Flutter里面应该有用过async和await吧?那你知道在就是比如说await一个函数之后再使用Context会有什么问题吗?

  17. 但是你了解Context的Mount和UnMount的问题吗?就它Mount和UnMount是突发在什么时机的呢?

  18. Android为什么不允许在子线程更新UI?

  19. 那你了解什么组件,它可以在子线程更新UI吗?

  20. 那它是怎么做到可以在子线程更新UI的呢?

  21. 那RxJava它应该一个任务它就可以,最后你可以拿到一个disposable的对象。那这个对象它的生命周期是怎么管理的呢?就比如说你这个音乐的app有一个异步任务,它可能从SD卡里面读取音乐文件,如果正在读的过程中你这个界面退出了,那你这个任务要怎么处理?

  22. 那如果没有绑定这个操作服务,它会导致什么问题呢?

  23. 你有了解安卓里面有什么内存泄漏的检测工具吗?

  24. 那你了解它内存泄漏的检测具体是怎么样的一个机制吗?就是它怎么可以,为什么可以检测到内存泄漏?

  25. 就或者说现在有一个app,它里面就是有ABC三个页面,就三个activity嘛,如果让你做一个简单的内存泄漏的检测,你觉得可以怎么做呢?

  26. 了解过弱引用吗?

  27. 可以用弱引用来做这个内存泄漏的检测吗?

  28. 看你有什么要问我这边的吗?

反问环节

Q: 面试结果大概什么时候出? A: 应该一两天,这周肯定会有结果。


面试总结

技术重点

  • Flutter与Rust模块的FFI调用机制
  • Flutter状态管理(GETX框架)
  • Build Context的使用和注意事项
  • Android线程安全和UI更新
  • RxJava生命周期管理
  • 内存泄漏检测机制