当前位置:网站首页>2022年字节跳动日常实习面经(抖音)

2022年字节跳动日常实习面经(抖音)

2022-07-04 16:55:00 古嘉明同学

6月份太忙了,这个月就不更新技术文了,给大家分享一篇字节跳动客户端面经,希望对大家有所帮助~

整体时间线

  1. 6月6号,字节官网内推投简历。6号晚上21点02分,HR电话约一面,约的15号晚上17:00面试。
  2. 6月15号晚上17:00一面,时长一小时。
  3. 6月16号中午11:08分,HR电话通知一面过,约了6月20号晚上19点二面。
  4. 6月20号当晚,18:48分 HR 小姐姐打电话通知,面试官在开会,需推迟15分钟,改为18:15分二面,面试时长75分钟。
  5. 6月21号中午11:20左右,HR小姐姐加我微信,我以为幸福来了,结果是来约我明天三面的-_-!。约的22号下午18:00点面试。
  6. 6月22号晚上18:00三面,时长一小时。
  7. 当晚,22号晚上8:20,HR来电话,流程走完了,约了明天下午16:00HR面。
  8. 23号下午16:00HR面,时长45分钟。
  9. 24号中午13:00得知面试已通过,offer审批中。

一面:飞书视频面,一小时

1_一面邀约.png

简单介绍一下自己

做项目过程中遇到的有挑战性的事情

挖简历上的两个项目

  • 第一个项目

​ 光效页下载20多组帧图优化场景:考虑用一个队列,每次同时下几张,代替for循环。

​ 广告页需求:闪屏文件下载时机?

  • 另一个项目,简单问了下聊天数据存在哪里?

SharedPreference 内部原理,为什么性能不好?

Activity的生命周期,一个Activity打开另一个Activity经历的生命周期,启动一个透明Activity会经历的生命周期。

Activity启动过程。

用过内存泄漏的检测工具吗?LeakCanary原理介绍一下?为什么LeakCanary要手动调用一次gc()?

GC回收机制?

View事件分发机制?父类拦截了down事件后,子类还可以接收到事件吗?

写一个线程安全的静态内部类单例。

为什么不加volatile关键字会有线程安全问题?

volatile关键字如何保证可见性和原子,其原理是什么?

算法:接雨水

提问环节:

我今天面试表现如何?

  • 还不错,基础挺好的。

对我有什么建议或哪里有需要改进的地方?

  • 整体还不错。

部门base在哪里?

什么时候能出面试结果?

  • 等HR通知

二面,飞书视频面,75分钟

2_二面邀约.png

简单介绍下自己

聊项目,在DNF助手项目中做了哪些业务?业务的具体场景?

项目中是用什么图片加载库进行加载的?如果让你实现一个图片加载库,你要怎么考虑?

  • 缓存策略:内存+本地存储。
    • 如何清除本地中过期的图片?缓存图片时,给缓存路径添加上图片的有效时间,当下次用户使用图片加载库的时候,对过期的图片进行清理。
  • 线程池

项目有使用列表的场景吗(RecyclerView),RecyclerView的内部原理说一下(缓存策略)?

对于不同类型的子View,RecyclerPool缓存池可以复用吗?

  • 在 RecyclerPool 中,用两层列表来存放可以复用的HolderView。第一层通过viewType获取到指定类型的复用列表。第二层就是对应类型的可以复用的holderView。第二层列表的大小默认是5。
  • 所以答案是,不同类型的holderView,存放的是不同的缓存池,所以不可以相互复用。

你在使用RecyclerView时,具体从哪几个方面优化RecyclerView页面的性能的?

  • 从子View的Xml结构入手,考虑怎么优化View的层级,减少View的测量消耗。对于能够缓存的数据尽量进行缓存。
  • 如果页面用户滑动的非常频繁,可能需要定制RecyclerView的缓存池大小。

你刚提到View的测量消耗,能具体说说怎么优化吗?

​ - 尽量减小子View的层级,不同的ViewGroup它的测量过程也是不一样的,比如,简单布局下LinearLayout的性能比RelativeLayout更高。

接着问到View的测量过程,顶级View的MeasureSpec对象和子View的MeasureSpec对象如何创建?View测量完之后的测量过程是什么?

接着两道程序题:

  1. 第一道与任务栈相关,考察Activity的启动模式:栈内复用模式,taskAffinity属性。
  2. 第二道多线程,问你如何让多线程顺序执行。

从第二道程序题聊到Handler机制,聊聊Handler机制的原理?Handler与Looper的对应关系?

最后,一道算法题:

给定一个无序的数组,值只会有1,2,3。要求在O(n)时间内将数组按升序排序,不可新增数据结构(数组,链表,map),允许新增变量。

即:[1, 2, 3, 3, 2, 1, 3, 2, 1] -> [1, 1, 1, 2, 2, 2, 3, 3, 3]。

思路是:只需将所有最小的1移到数组最左边,将所有最大的3移到数组的最右边,即可满足一次遍历完成排序。维护两个索引,第一个索引维护数组左边最后一个1的下一个位置,第二个索引维护数组右边第一个3的前一个位置。然后顺序遍历,对元素进行值的比较,然后交换即可。

提问环节:

我们部门具体负责的业务有哪些?base具体在深圳哪里?

我的面试表现?

后面几分钟,闲聊,面试官问到,目前有面其他公司吗,手里有几个offer?

目前我在研一,我的实习时间怎么安排?

三面,飞书视频面,一小时

3_三面邀约.png

第三面,我只能说,面的稀烂。

只面了2道算法题,没一道做出来的。不是题目难,是思维一下卡住了,想不到了,我崩溃了。

第一道,抽扑克,每次抽一张,然后下一张放到最后面,接着顺序抽下一张,重复以上操作。直到手中的扑克牌抽完为止

中间还有一道:每隔k个元素,旋转一次链表。这题我会,但面试官说java没有链表,得自己实现,怪麻烦的,所以换了一道。

第二道,实现开根号。简单吧!,我没写出来,我笨啊!我是真的笨啊!

三面一小时面下来,心里只剩三个疑问:我是谁?我在哪?我要去哪里??

苦笑哇哈哈哈哈。。。

提问环节:

(面完我人都傻了,都不知道要问什么,随便问了两个问题,面试官看我情绪低落,还安慰了我一下,说还会根据其他两面的结果来看的,不一定会挂。)

我的面试表现?

有啥建议吗?

第三面后,至此就结束了吗?并没有!!

在我还在为面试表现不佳,低落情绪,准备走出宿舍找点事干分分心的时候,有个四川的电话打了过来。

四川的电话?谁啊?莫非是前几天618买的快递到了还没取,小哥给我打电话让我取一下?

随便啦,接听

“喂,你好?”

“诶,你好,请问是古嘉明同学吗?我是抖音的HR”

我的内心,嗯?!莫非?还是说这么快送感谢信来了?

“嗯,是的”

“嗯,你这边的面试流程已经走完了,接下来跟你约一下HR面噢,明天下午有空吗?”

我的内心,!!!!!!!!!!!!!!!!!!!!

“有哇有哇,明天下午我都有空!”

我的天呐!没想到居然还有下文!一定是我前两面表现的还不错,我的天呐!!!!

4_三面后的心情.png

看上图知我心情~哈哈哈

HR面,飞书视频面,45分钟

主要是聊天。问了很多关于实习时开发项目的问题,比如你在开发这个项目时遇到的困难点?你是怎么解决的?在开发中令你印象比较深刻的环节是什么?开发过程中遇到意见不和怎么办等等。

如果时间追回到你刚开始实习那会,你会做哪些调整?

如果有两位同事争吵了,这时候你该怎么办?

你进入公司后的技术规划是什么?你觉得你进入字节后,上手项目需要多长时间?

如果你进入公司后,发现身边的人比你优秀或者说你并没有你想象中的那么优秀,你会有什么反应?

对于比你厉害的人,你是通过什么方式提升自己去追赶他的呢?学习通过什么途径?

如果你进入字节实习,你的上一次实习经历,对你在字节实习有什么帮助?

你是怎么安排你的课余时间的?

什么时候能开始实习,能实习多长时间?

目前还有在面其他公司吗?你投了哪几家?手里还有别的offer吗?

提问环节

公司的工作时间安排是如何的?

24届实习到明年时,有转正机会吗?

最后,HR面完第二天,中午得知面试已通过,查官网应聘记录流程显示,面试已完成:

5_面试已完成.png

兄dei,如果觉得我写的还不错,麻烦帮个忙呗

  1. 给俺点个赞被,激励激励我,同时也能让这篇文章让更多人看见,(#.#)
  2. 不用点收藏,诶别点啊,你怎么点了?这多不好意思!
  3. 噢!还有,我维护了一个路由库。。没别的意思,就是提一下,我维护了一个路由库 =.= !!

拜托拜托,谢谢各位同学!

原网站

版权声明
本文为[古嘉明同学]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_40987010/article/details/125484169