腾讯暑期实习面经
时间:2025-5-20
算法编程题
合并有序链表
- 时间限制:20分钟
- 环境:没有开摄像头,独立完成
面试问题(按录音顺序)
注:开始提问后才开摄像头
-
请你简单的自我介绍一下,可以主要介绍一下你简历里列的这几个项目
-
先聊一下那个校园圈的APP,这里前端是用Flutter结合部分Rust模块来开发的,你可以讲一下这里Flutter是怎么调用Rust模块的吗?
-
可以具体说一下FFI是怎么调的吗?你了解它内部调用的细节吗?
-
那这里涉及切线程吗?还是它是在同一个线程调用的吗?
-
但是ISOLATE的话,它跟主线程应该是有数据隔离的吧?然后这里的问题你是怎么处理的呢?
-
那这里发送和接收是会涉及到数据的序列化吗?还是你的数据信息具体是怎么传递的呢?
-
那这里传递的数据的量体是怎么样的呢?
-
但是这个你还是不能避免到序列化和反序列化?
-
那你在app里面状态管理是怎么做的呢?
-
在这个GETX框架里面,你应该用过那个OVX那个函数吧?了解它具体是怎么实现组件刷新的吗?为什么一个数据的变化就可以触发一个组件的刷新?
-
但是它是怎么做到局部刷新的呢?比如说如果你用传统的SetState的话,它可能是整个Widget都刷新的。然后用GETX的话,它可能只是监听的那一部分在刷新。这里是怎么做到的,你了解吗?
-
做Flutter开发应该遇到比较多的Build Context,你可以讲一下你了解的Build Context吗?这个Build Context是什么作用?然后有什么开发的时候的注意事项?
-
这里拓展是用什么东西拓展?
-
然后比如说在父组件绑定了一个数据,你在子组件是怎么取的呢?
-
除了这个Provider,你还了解什么别的使用Build Context的注意事项吗?
-
那你也在Flutter里面应该有用过async和await吧?那你知道在就是比如说await一个函数之后再使用Context会有什么问题吗?
-
但是你了解Context的Mount和UnMount的问题吗?就它Mount和UnMount是突发在什么时机的呢?
-
Android为什么不允许在子线程更新UI?
-
那你了解什么组件,它可以在子线程更新UI吗?
-
那它是怎么做到可以在子线程更新UI的呢?
-
那RxJava它应该一个任务它就可以,最后你可以拿到一个disposable的对象。那这个对象它的生命周期是怎么管理的呢?就比如说你这个音乐的app有一个异步任务,它可能从SD卡里面读取音乐文件,如果正在读的过程中你这个界面退出了,那你这个任务要怎么处理?
-
那如果没有绑定这个操作服务,它会导致什么问题呢?
-
你有了解安卓里面有什么内存泄漏的检测工具吗?
-
那你了解它内存泄漏的检测具体是怎么样的一个机制吗?就是它怎么可以,为什么可以检测到内存泄漏?
-
就或者说现在有一个app,它里面就是有ABC三个页面,就三个activity嘛,如果让你做一个简单的内存泄漏的检测,你觉得可以怎么做呢?
-
了解过弱引用吗?
-
可以用弱引用来做这个内存泄漏的检测吗?
-
看你有什么要问我这边的吗?
反问环节
Q: 面试结果大概什么时候出? A: 应该一两天,这周肯定会有结果。
面试总结
技术重点:
- Flutter与Rust模块的FFI调用机制
- Flutter状态管理(GETX框架)
- Build Context的使用和注意事项
- Android线程安全和UI更新
- RxJava生命周期管理
- 内存泄漏检测机制