范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

字节跳动(抖音)Android客户端实习31面经

  很多朋友知道我在字节担任面试官,做公号的初衷之一也是希望能多一个为团队网络人才的渠道。但是一段时间下来发现真正找我咨询、内推的人并不多,不少同学对字节的面试有所忌惮,总担心准备不够。
  实际上字节特别是客户端的面试没有网上传说的那么可怕。碍于公司制度,我不能把我面试别人的具体内容写出来,但是可以分享一些候选人自己写的面经供大家参考。
  比如今天分享的这个面经,内容靠谱,能够反映出抖音客户端面试的难度。当然面试内容是因人而异的,所以主要是帮大家了解面试范围和难度,无需拘泥于具体题目
  作者:小顾
  我是一名本科应届生,学校专业是软件开发。距离毕业之期不到半年,学校也在催促我们早点出校实习,年前通过一名学长内推去了字节跳动的抖音面试。12 月 31 号投的简历,1 月 6 号收到 HR 电话。隔这么长时间还是挺害怕的,以为简历都被筛掉了。
  下面是我在字节抖音的面经分享,一二面和 HR 面都是凭印象回忆的,可能会漏掉一些问题。 一面(1 月 13 日,68 min)
  1. 自我介绍
  2. 简单讲讲你项目的整个设计过程
  3. 你提到项目中用的是 MVVM 架构,讲讲你对 MVVM 的认识?MVVM 的优点有什么呢? MVP 中 Model、View 和 Presenter 的持有关系是怎么样的? MVVM 中的持有关系呢? MVVM 中各个层在 Android 开发中的对应关系? 你的 MVVM 用到了 Jetpack 里的 ViewModel,那么它是如何保持数据的呢? ViewModel 是怎么做到在 Activity 销毁重建新实例之后还能保持不变的呢?
  4. 你有提到说用的 Kotlin,那讲讲 Kotlin 用起来相比 Java 的好处?如果用 Kotlin 去调用一个具有返回值的 Java 函数,那么这个返回值是可空的还是非空的呢? Kotlin 中的可见性和 Java 是不一样的,分别讲讲? 你说你用到了协程,讲讲你对于协程的认识? 取消协程之后,里面的工作会立刻停止吗? 不会的话,该怎么停止呢? 调用了 cancel() 之后协程的状态变化? 如果子协程中没有通过判断协程状态来决定是否终止工作,那么取消父协程之后会是怎样的? 你提到了协程分为有栈和无栈两种。它们的区别是? 这个"栈"里都保存了什么信息? Kotlin 的协程是无栈的,那这些信息是怎么保存的? 协程该怎么取消呢? 协程会不会和线程一样有共享变量冲突的问题呢? Kotlin 中有一个 inline 关键字,讲讲你的了解? 刚开始的时候这个问题没太听懂,所以就答了不知道。一面结束之后翻书才看到 noinline 关键字。  除了通过内联函数减少函数调用的开销,还有什么用途吗? 如果现在有一个高阶函数被 inline 修饰,我不想让它的参数被内联,该怎么办呢? Kotlin 是可以跨平台编译的,讲讲你的了解? 你刚才提到的编译到"原生平台",指的是什么? 现在如果让你用 Kotlin 写一个跨平台的项目,你该怎么做?
  5. 浏览器里从输入一个网址,到最终看见网页,发生了什么?HTTP 是应用层协议,讲讲是如何建立的? 你说底层是 TCP,那讲讲 TCP 的三次握手? 如果现在要使用 HTTPS,连接的建立会发生什么变化呢? 客户端是如何根据 IP 地址找到服务器对应的主机的呢?
  6. 算法
  LeetCode 518. 零钱兑换 II
  题目开始理解错了。最后这个题没完全做出来,面试官让我讲了下思路。
  7. 反问部门业务? 面试评价? 我还有什么需要学习的地方吗? 面试官反问:这次面试只是为了实习还是说有转正想法的? 部门业务开发语言? 多久能收到结果通知?
  一面结束后等了十几分钟,HR 通知第二天二面。二面(1 月 14 日,60 min)
  1. 自我介绍
  2. 项目介绍。用到了什么技术栈?ViewModel 的作用是什么? 你在 Fragment 之间传递数据的时候是怎么做的? 为什么不用一个全局的静态变量呢? 你有用 LiveData 自己封装了一个事件总线,讲一讲实现? 对 Retrofit 的基本结构或者源代码了解吗? Retrofit 有一个动态代理的过程,有听说过吗?
  3. Kotlin 和 Java 都是在做这个 Android 项目中学习的吗?在 Kotlin 和 Java 中,实例的初始化顺序(成员变量、静态变量、构造函数等)分别是怎样的?
  4. Kotlin 的作用域函数(let、apply 等)有了解过吗?你是怎么理解的?具体来说它们有些是带 Receiver 的、有些是带参数的,你在使用过程中是怎么选择的呢?
  5. OOP 中的设计模式有了解过吗?Java 中的单例模式分为哪些呢? Kotlin 中的 object 相当于 Java 中的哪一种单例模式? 类加载器又是在什么时候去加载这个类呢? 解释一下饿汉式中存在的性能问题? 饿汉式是怎么做到线程安全的? 在 Kotlin 中如何实现懒汉式单例? Java 中 DCL 单例模式中双重校验的意义?
  6. Jetpack 的其他组件有了解过吗?Room 使用的基本流程了解吗? SQLite 平常你是怎么用的呢?
  7. 算法
  LeetCode 101. 对称二叉树
  8. 反问部门业务? 是纯原生开发吗? 面试评价? 还有什么需要学习的? 面试官反问:对工作地点有要求吗? 多久能收到结果通知?
  二面结束之后等了大概一个小时多,HR 通知第二天三面。三面(1 月 15 日,40 min)
  1. 自我介绍 & 项目介绍项目是你自己在做吗? 介绍一下项目的模块和功能? 项目中用到的数据都是怎么获取到的? 学校的系统里没有什么安全措施吗? 你这个项目有这么多人在用,是怎么推广的呢? 后续有和学校交流让你这个项目变成官方 App 吗? 项目中有什么技术难点吗?
  2. 有了解过 Retrofit 是如何简化网络请求的吗?解释一下动态代理?
  3. Retrofit 会结合一些注解进行使用,对注解有什么了解吗?APT 有听说吗?是做什么用的呢?自己有上手用过吗? AOP 的概念有了解吗?
  4. Jetpack 的 AAC 中是如何做到生命周期的分发的呢?Jetpack 组件还了解哪些呢?
  5. Compose 有了解过吗?
  最开始没想起来,后来面试官提到 Flutter 才想起来是新出的一个声明式 UI 框架。
  6. Flutter 有了解过吗?
  7. synchronized 关键字修饰静态方法和非静态方法的区别?一个类中有一个静态方法 A 和非静态方法 B,都被 synchronized 修饰。两个线程分别去调用同一个实例的方法 A 和方法 B,会产生竞争吗?
  8. volatile 关键字的作用?解释一下"立即对所有线程可见"和"禁止指令重排"?
  9. Java 中的四种引用类型有了解过吗?分别有什么区别呢?
  10. GC 机制有了解过吗,比如算法之类的?
  11. 一个 View 要渲染出来,需要经过哪几个步骤呢?这些步骤各自对应了一个回调方法,对 View 的什么操作会触发对这些回调方法的调用呢?或者说,不同的操作会触发不同的调用吗,比如有的调用,有的不调用? 如果说 TextView 大小固定呢? 除了在 Activity 创建的时候,后续对 View 的哪些操作会触发这些回调方法呢?(这里确实没复习到,现场通过 TextView 举例结合了这三个阶段的回调方法名开始猜)
  12. 除了绘制,View 还有一些事件的传递机制,有了解吗?过程中的几个关键过程回调是哪几个呢?
  13. 有听说过"过度绘制"吗?
  这个没答上来,然后面试官很耐心地解释了这个概念,实际上就是两个 View 叠在一起,下层被上层挡住的部分是看不见的,但还是会进行绘制。
  14. 编程 & 提问
  给一个  List ,遍历并删除指定元素(比如 abc),写出代码(大概就是自己实现 List#removeAll() )。
  三面不出算法题是我没想到的。这个题也挺简单,就是利用迭代器遍历然后删除就好。因为对迭代器不是特别熟悉,所以开始写的时候并没有单独用变量 it 把迭代器存下来,而是在每个要用迭代器的地方都获取了一次,然后跑起来报错了。后来意识到之后就改了。  List list = new ArrayList<>(); list.add("abc"); list.add("abc"); list.add("abc"); list.add("123"); list.add("abc"); Iterator it = list.iterator(); while (it.hasNext()) {     if (it.next().equals("abc")) {         it.remove();     } }你刚才为什么会出错呢?
  然后面试官从代码规范和迭代器的使用两个角度讲了一下为什么应该把迭代器提前存到变量里面,还提到了 WeakReference 相关的东西。  能不能把  it.remove()  换成 list#remove("abc")  进行删除操作呢?会报什么错呢?
  一紧张没敢确定说是 Fast-fail,面试官允许我先运行了一下再说。  不用迭代器实现的话需要考虑什么呢?为什么你会首先想到使用迭代器呢? 为什么不能在下标遍历过程中进行插入和删除呢? 能不能在 for-each 遍历中进行删除呢?
  15. 反问实习生会有人带吗? 面试表现? 学习建议?
  三面结束后一个多小时左右,收到了晚上继续 HR 面的通知。HR 面(1 月 15 日,27 min)
  1. 评价一下自己前三面的表现?如果重来一次的话,对于答不上来的问题你会怎么办?
  2. 介绍一下你的项目
  3. 项目中遇到瓶颈是怎么解决的?
  4. 你觉得你这个项目对你有什么提升?你觉得自己有什么优点和缺点?
  5. 你打算如何去改进自己的缺点呢?
  6. 你平常放松自己会通过什么方式呢?
  7. 你觉得大学中最紧张的时间段是什么时候呢?
  8. 你是打算实习然后转正吗?为什么现在不想考虑转正呢? 那后续的话除了字节你还打算去哪些公司呢? 你是为什么打算去这些公司呢?
  9. 你平常会怎么安排自己一天的时间呢?
  10. 入职之后你打算怎么平衡实习和课业学习呢?面试总结字节的面试体验还是相当不错的。过程中面试官会很耐心地听你讲,对于答不太上来的问题,给出大体思路也是可以的。回答不上来的东西,面试官也会在面试过程中跟你简单介绍一下。大概这就是为什么最开始 HR 和邮件里都有说"不会的题也鼓励和面试官交流想法"吧。 反问环节请面试官对面试过程进行评价,以及对个人能力提出一些建议的时候,面试官还是很乐意的,也很能抓住我的不足(废话不然为啥人家能是面试官呢)。 关于面试中为什么被问到了很多 Kotlin 以及 MVVM 相关的东西,这个是因为我简历上写了之前在学校做过的一个项目。所以基本上三场技术面中相当多部分的提问是围绕着项目进行的。有项目的同学一定要好好梳理下自己的项目,引导面试官去问到你会的东西。 在开始面试之后,HR 全程跟进的速度非常快。每场面试结束之后 HR 会询问一下面试感受,还会鼓励我复盘一下。
  在这里就再分享一份由大佬亲自收录整理的Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料
  这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在未来取得一份不错的答卷。
  当然,你也可以拿去查漏补缺,提升自身的竞争力。
  真心希望可以帮助到大家,Android路漫漫,共勉!
  如果你有需要的话,只需私信我【进阶】即可获取

雷柏E9350G刀锋办公键盘轻薄设计双模连接前段时间把单位的键盘搞坏了,本着不被领导发现的想法决定自己买一把键盘了事儿。这几年自己一直在用雷柏的机械键盘,家里倒是还有几把库存,不过考虑到公共办公室用机械键盘太吵,最终还是入手屋后的小猫咪太高冷啦屋子后面有几只流浪猫,开始就两只,父亲大人也不喜欢。整天说猫喜欢偷肉吃,早晚弄死它们,不过倒是一直也没动手。当然也没人有那闲心给它们做绝育,最高峰的时候,有十几只猫咪。因为猫咪是在舒乐氏红外取暖器迅速升温远距送暖十一小长假刚过,北方的天气就逐渐转冷,一年当中最难熬的就是供暖前的这段日子,加之今年降水频繁,每天前段时间几乎连续一周左右都是阴天,家里的温度只能维持在20度上下。今年搬到了新房子Ganss高斯ALT83G机械键盘颜值在线手感出众随着桌面文化的盛行,如今键盘已经不单单只是一把输入工具,一定程度上还承担着装点桌面的使命,在微博和Ins上也经常看到一些桌搭博主和数码博主分享高颜值的外设装备。当然,作为电脑工作的星特朗近焦望远镜SCJJ825远近双焦清晰成像在生活中,人类可以通过双眼看清楚周围环境中的事物,并且人眼是一套非常复杂的系统,它可以自动适应光线环境的变化,亦或者根据观测物体的远近来调焦。不过眼睛所处的位置毕竟是由身体决定的,智能单相电表与三相电表的相关功能电表是记录和显示电能状态的仪表。用千瓦小时(kWh)来计量电能,1kWh即1度电。选一个电表,要看它的电压频率电流值是否适用。在国内使用电压为220V频率为50Hz的电能表应按不大头条指数从没超过650,今天开通了原创商品功能,说说我头条经历本人不才,文笔也不怎么样,只不过今天突然有感而发,为什么呢?因为以前一直受到头条指数的限制,在入头条半年来一直梦想的开通头条广告原创功能一直没有实现,今天却突然全部实现了。惊喜之情国庆装机配置推荐,预算四千游戏性能都兼顾,吃鸡魔兽嗷嗷叫马上国庆节到了,好多网友问到老国,这个假期想弄一台电脑,平时玩个绝地求生吃吃鸡,玩个魔兽世界这种游戏,选什么配置什么预算好呢,因为老国喜欢推荐英特尔平台,所以今天老国给大家推荐一款预算四千元,要求高性价比,怎么才能配一套高性能的游戏电脑主机现在随着Intel价格的攀升,在一个月前一直在攒机的朋友们发现,四千元对于Intel来说没有什么性价比可言了,下面我们来看下,怎样才能体现四千元的性价比呢?cpuAMD锐龙5260来来来,教你用夜神安卓模拟器玩王者荣耀,带你起飞玩过LOL的朋友去玩手机游戏略显的别扭,为什么王者农药不能再电脑上玩呢?所以现在就看看农药怎么在电脑上起飞,本文基于win10系统。安装夜神安卓模拟器和王者荣耀百度一下夜神安卓模拟vue调试工具vuedevtools安装及使用vuedevtools是一款用来调试vue应用的浏览器插件,本文手动编译一个Chrome插件,当然你也可以通过Chrome网上应用店下载。Github地址httpsgithub。c
495元迷你电脑跟手机一样大小,华擎MINIITX最终形态魔改君最近折腾了一阵子ITX,但是不到2L体积的华擎DESKMINI,一直是个梦。1。92L体积的ITX主机,也就2个手机般的大小,在尺寸上几乎做到了极致。玩ITX,怎能不入手一套揭秘为这家银行信用卡,竟然两次更换华为手机日前,携带着刚进手就升级到鸿蒙HarmonyOS系统的华为Mate40Pro手机,来到一家商户门店,目的是测试中信银行信用卡动卡空间APP刚刚上线的鸿蒙HarmonyOS版线下应用行业首个2年质保手机出现!实话实话,2年质保是必要吗?在今年315国际消费者权益日的当天,一加创始人CEO宣布重磅消息将于3月24日发布的一加9系列可享受2年官方质保。该消息一经发布,即引起了业内外和媒体的高度关注,中国新闻周刊评论说260元华硕龙骑士760显卡收藏一波?价格暴涨时代二奶机优选在这个显卡价格暴涨的时代,淘点老显卡的皇帝级搞搞收藏,也许别有一番乐趣,说人话就是穷欢乐。当然,国庆中秋期间还有一样令所有垃圾佬心里有点小幸福感的事情,就是新版本的鲁大娘了。跑分暴300元英伟达660TI显卡竟有3G版本?硬刚762穷人选择国庆期间魔改君也没什么事,也许会跟小助理一起出去看看最近热门的电影,比如家乡和女排。其他员工基本都是9号上班,这个年龄的大男孩一旦无聊起来,基本就只有一件事情可以做,那就是捡垃圾,某up主用200块捡到1600机械键盘?台湾EG退出中国市场这篇文章要从2018年8月16日的B站某UP主的一个视频说起某UP是用了200元捡到了一个价值1600元的二手机械键盘,但毕竟机械键盘这个玩意,二手的手感将大打折扣。所以,本次我们2020年中秋国庆处理器行情INTEL降价AMD猛涨,飘了每到放假期间,对于魔改君这种实测党来说,都是一种考验。一方面,没有实物可写的文章,魔改君张不开嘴。另外一方面,也是自我提升跟大家沟通互动的一种考验。说人话就是水,也要水的有水平!一1100元频率5G单核600分!英特尔处理器性能之王游戏首选悄悄的,我来了!不带走一个小姐姐英特尔发布第一代酷睿I99900K的时候,被称为性能之王,游戏之王,原因很简单,当时的I9,3级缓存比I3I5I7要大,也是唯一拥有HT的存在,并且AMD锐龙3100处理器小幅度降价,千元机跟英特尔如何选择?虽然最近的风头都说INTEL方面的处理器降价了,事实上也确实降价了,不过最为最低端的10代处理器I310100,却还是要比AMD同级别的锐龙3100要贵一些。锐龙3100和酷睿I31149元显卡叫醒装睡的人?供货紧张,NVIDIA中低端大涨前面就跟大家说下进来的NVIDIA的显卡趋势吧,3080那些高端卡自然就不用多说了,有ETH的刚需在那摆着,所以换位思考就很容易得到答案了,毕竟算力直接能转化为RMB!中低端显卡就INTEL非Z芯片组再次被破解!300元神U说没支持没原创300元的神U,自然就是QL3X那玩意儿了,非Z系列芯片组,也早就被各路大神攻破了,魔改君比较后知后觉,原因有两个第一个,没觉得有难度映泰,通路的太简单,华硕技嘉难度也不大,华擎更