TikTok 2025 Summer Intern Mobile Eng一面面经

Viewed 66

LC是mobile岗,所以涉及的领域基本是Java、移动端以及OS,很像中国的面试
面试后回忆写的,问题不分先后顺序

国人面试官中国时区

  • OS:进程与线程的区别进程是.xxx?的最小单位?线程有哪些自己专属的资源?
  • 讲讲JVM?五大组成以及对应的作用(有几个记得不太清楚,提到了句柄,但自己没搞明白,差点翻车),讲讲不同的gc?即gc有哪几种方式?(有点模糊,不过回答了几个)。
  • 讲讲Java中的锁机制?有哪些锁?可重入锁有哪些?如何保证线程安全?(举了个例子,两个线程改变一个变量,需要使用volatile关键字或者使用synchronized机进行加锁)(其实这里也有点模糊了)
  • 讲讲Android中的四大组件?Activity是由谁启动并管理的(回答错了,面试官帮忙纠正)?Fragment与Activity的关系是怎样的,为什么Fragment轻量而Activity重量
    Activity的生命周期,有这些生命周期的回调有什么用
    Service的作用?没答到点子上,service与线程有什么关系(这里是一个坑点,答得还行?面试官有补充)
  • TextView setText的更新原理(差点翻车了,回答错了,不是通过handler发送了消息,而是invalidate这个方法,结合MainLooper死循环等.,面试官提出质疑后自己纠正了)。怎么更新的,(View树,ViewRootImpl)
  • View是怎么绘制的,三大核心方法?自己写一个view会怎么做?(onMeasure模糊)
  • Binder通信原理(简单回答了下核心),跨进程通信(这里还是不太了解其作用,面试官提到了阻塞以及不阻塞的问题,答得很宽泛)
  • 讲讲Java线程池的几个参数(有几个参数有点模糊)
    自己从view.invalidate提到了Compose,面试官开始问Compose,如何看待Compose?为什么会推出Compose以及它的有点?(这里答得不好)
  • UI组件化,详细讨论。如何实现UI组件化,这里其实没答到点子上很遗憾,自己是有往这方面想的(定义接口)
  • 组件间如何进行通信?跟接口有关
  • 聊聊音视频的基础
  • 你知道从网上拉一个流到本地播放会经历哪些操作吗?
  • 有搞过播放器之类的吗?这里答得不错,引出了自己之前做的仿抖音的播放器,有说出自己编译了FFmpeg,导入so库,并做了一个播放器
  • 既然提到了FFmpeg,你说说用到了哪些库?
  • 最后一个问题:SurfaceView与TextView有啥区别?诚实地说自己没用过SurfaceView,但知道其是用于高强度刷新的,会另外开一个线程去做UI处理。

大概2-3天后hr contact,约了二面

感谢分享!🎉

0 Answers