字节跳动客户端开发二、三面面经(已offer)

客户端开发(上海)二面(05/12)

1.自我介绍

数据库
2.解释原子性,如何实现?
3.索引,实现的数据结构(我答了B-tree索引)
4.讲讲B-tree

Java
5.怎么实现同步(我答了synchronized, volatile)
6.讲讲synchronized
7.垃圾回收

网络
8.HTTP/TCP
9.OSI七层结构
10.TCP可靠传输

算法题
经典股票售卖问题I & II

全程34分钟,风格是每个模块选一个切入点,根据我的回答涉及的知识点进行扩展,感觉大部分答得还可以,期待后续。


三面(05/28)本来是5/22三面,但我的设备临时出了问题没法面,就又重新约了时间
1.介绍背景,倾向的开发方向
Java
2.讲讲volatile
3.不用synchronize怎么实现多线程多次读写操作?我答了读写锁
4.ArrayList<String>,ArrayList<Integer> getclass判断相等,这个我没答出来,后来面试官提示泛型我还是不会,结束以后查资料才知道因为,在编译期间,所有的泛型信息都会被擦除,List<Integer>和List<String>类型,在编译后都会变成List类型(原始类型)。Java中的泛型基本上都是在编译器这个层次来实现的,这也是Java的泛型被称为“伪泛型”的原因。这题答得简直尬的我想抠脚。。。
算法题
5.求数组连续子区间的最大和
6.实现LFU cache

闲聊爱好,工作城市
介绍部门工作时间,技术栈
本来我觉得我第四题答得跟屎一样,没想到最后闲聊时听下来感觉口风有戏,可能是算法题做的还不错,拯救了一些印象

总而言之,许愿oc吧!
#字节跳动面试##字节跳动##校招##面经##Java工程师##安卓工程师##iOS工程师#
全部评论
楼主是本科还是研究僧
1 回复 分享
发布于 2020-07-29 07:57
已经接offer了,谢谢各位关注
1 回复 分享
发布于 2020-06-08 21:46
有没有问一些开源库的实现呢
点赞 回复 分享
发布于 2020-09-24 15:54
吸吸楼主欧气!!许愿Offer!!
点赞 回复 分享
发布于 2020-08-12 14:56
算法题手写LFU有点难了,其他人都是lru😂
点赞 回复 分享
发布于 2020-07-29 09:34
是创新业务部吗
点赞 回复 分享
发布于 2020-05-15 00:47
想问一下楼主一面后多久通知的二面
点赞 回复 分享
发布于 2020-05-14 17:31
楼主什么时候笔试的~~
点赞 回复 分享
发布于 2020-05-14 10:37

相关推荐

字节客户端,流转番茄、剪映、抖音、飞书等多个部门,历经十三次面试,终于拿下。前六面面经见上篇,记录下后续面经:七面(1h45min)1.&nbsp;自我介绍2.&nbsp;实习项目3.&nbsp;介绍下实习的项目架构4.&nbsp;讲讲对Compose声明式的理解5.&nbsp;java强引用和弱引用的区别6.&nbsp;还有其他引用类型吗7.&nbsp;ThreadLocal8.&nbsp;你平常有什么遇到的ThreadLocal的应用场景9.&nbsp;java集合类型(介绍各种集合,吟唱List、Map、Set)10.&nbsp;集合多线程访问数据竞争问题怎么解决11.&nbsp;synchronized的用法12.&nbsp;LeakCanary检测内存泄漏的机制13.&nbsp;MVVM、MVP、MVC三种架构的区别14.&nbsp;算法:搜索旋转排序数组总结:知识点知识面掌握挺不错的,基础知识的细节也了解得比较清楚,实习经历对于一个还没毕业的本科生来说还是不错的。过八面(1h)1.&nbsp;项目拷打2.&nbsp;不使用ksp开发的监测组件有什么办法定位Compose组件执行耗时3.&nbsp;LeakCanary原理机制4.&nbsp;OKHttp和Retrofit设计模式(答了七八个主要的)5.&nbsp;责任链好处是什么6.&nbsp;包大小优化措施,提升了哪些性能7.&nbsp;线程和协程的区别8.&nbsp;鸿蒙调用cpp是怎么做的9.&nbsp;了解什么跨端框架10.&nbsp;flutter为什么比原生慢11.&nbsp;flutter和react&nbsp;native在渲染机制上的区别是什么(自绘引擎独立绘制和原生组件映射)12.&nbsp;kmp是怎么实现跨端的(逻辑层统一编写,UI等原生层各自实现)13.&nbsp;view事件分发cancel事件什么情况会触发14.&nbsp;view事件分发流程15.&nbsp;Binder机制16.&nbsp;lc.215&nbsp;数组中第k个最大元素(要求先讲几种不同方法,再实现代码最复杂那个)(1)&nbsp;直接排序&nbsp;O(nlogn)(2)&nbsp;优先队列(最小堆)O(logn)(3)&nbsp;快速选择&nbsp;O(n)&nbsp;写这个的代码总结:没什么问题,秒过,进入hr面(最后倒在审批,原因是手头的offer不够多很难争取)九面(hr面45min)压力很大,像是在面技术面1.&nbsp;自我介绍2.&nbsp;为什么选择就业而不是考研3.&nbsp;工作室有什么项目需要做4.&nbsp;项目为什么做了一年(业余时间开发)5.&nbsp;项目的动机、背景6.&nbsp;还在实习吗(转正离职了)7.&nbsp;挑一个实习工作讲一下背景和做了哪些事情8.&nbsp;技术优化是谁提出来的,leader提出的还是自己找到的9.&nbsp;做完需求的成长和进步体现在哪里10.&nbsp;独立开发sdk提效是谁给你的建议吗11.&nbsp;除了技术问题还有遇到其他困难吗(联调沟通)12.&nbsp;一开始不使用联调的原因是什么,打乱工作节奏吗13.&nbsp;做好一个程序员,除了技术上扎实,还需要基本什么样的素质和能力14.&nbsp;沟通上有什么心得,可以提高工作效率15.&nbsp;有遇到矛盾和分歧吗,怎么解决的16.&nbsp;在团队中工作影响你产出的阻碍和困扰有什么17.&nbsp;新的UI框架你是花多久学清楚的18.&nbsp;mentor对你的评价是什么19.&nbsp;组内几个实习生,都转正通过了吗20.&nbsp;和其他实习生相比你的优势在哪里(来得早,知识面多)21.&nbsp;你有想过未来规划怎么样长期保持自己的优势吗(自驱力,持续学习)22.&nbsp;跨端方面你觉得哪家公司做得比较好(腾讯视频)23.&nbsp;你们组的跨端方案跟腾讯视频比有什么差距吗24.&nbsp;对字节校招面试的感受是怎么样的25.&nbsp;&nbsp;你是从其他部门流转过来抖音搜索的,对该部门面试的感受是什么26.&nbsp;有反思该部门二面没通过的原因吗27.&nbsp;会有失落和挫折的感受吗28.&nbsp;怎么排解失落的心情29.&nbsp;现在手头有哪些offer30.&nbsp;看你也投了其他非互联网公司,对发展的不同方向有倾向性吗审批一周还是倒下了,流转其他部门,后续免hr面后面的面试不怎么问八股了,更多是项目、场景、智力题十面(30min)1.&nbsp;自我介绍2.&nbsp;有了解鸿蒙如何与Kotlin通信吗3.&nbsp;Compose对比常规view的优势是什么4.&nbsp;Compose局部重组的原理,标脏机制5.&nbsp;对最近比较火的ai编程工具有了解吗,像claude这些6.&nbsp;了解ai编程的原理吗7.&nbsp;现在还在实习吗8.&nbsp;什么时候接触安卓的?写过ios,前端吗9.&nbsp;你会怎么快速上手ios10.&nbsp;编码算法就不考察了,之前面试都写出来了11.&nbsp;为啥有微信offer还面其他的总结:从二面开始,通过了就是三面,大概率也不考算法。过十一面(1h)1.&nbsp;自我介绍2.&nbsp;实习介绍3.&nbsp;Compose局部重组是怎么实现的4.&nbsp;ai工具你是怎么用的5.&nbsp;有没有用过claude&nbsp;code、cursor(需要付费,没用过)6.&nbsp;agent是怎么实现的,工作原理是什么7.&nbsp;你觉得自己比同阶段的同学优势在哪里8.&nbsp;最近在学什么9.&nbsp;最近比较感兴趣并且学得深一点的是什么10.&nbsp;Compose什么时候会跳过重组11.&nbsp;自己后面有什么规划吗12.&nbsp;Compose组件封装得更通用有什么思路吗13.&nbsp;组件点击事件的响应是怎么扩展的14.&nbsp;9枚硬币有一枚是假的,假硬币会轻一点,有一个天平,最少称几次可以找到假硬币15.&nbsp;100层楼,有两个瓶子,怎么扔,最坏情况下扔几次可以用最少次数找到瓶子会不会碎的临界楼层(想了几种方案最终只优化到18次的最坏情况)16.&nbsp;为什么apk体积比较小了还要优化17.&nbsp;apk优化方案总结:客户端经验很丰富,ai了解不够多。一周后挂十二面(1h)1.&nbsp;自我介绍2.&nbsp;实习亮点介绍3.&nbsp;跨端方案的背景4.&nbsp;跨端方案很多,为什么使用c++?写起来方便吗?5.&nbsp;java和c++是怎么通信的6.&nbsp;还了解哪些其他跨端技术7.&nbsp;怎么判断哪些代码可以下沉到逻辑复用层8.&nbsp;在跨端过程中你做了哪些9.&nbsp;举个例子说明哪些代码放在原生层,哪些代码放在复用层10.&nbsp;底层数据发生变化是怎么通知上层的?数据驱动是怎么做的11.&nbsp;原生层的viewmodel和底层的viewmodel的区别是什么12.&nbsp;使用什么手段可以主动发现线上的性能问题(流水线)13.&nbsp;MVVM的设计思路是什么,和传统MVC、MVP的区别14.&nbsp;LiveData相对于传统观察者模式有什么优势(生命周期集成)15.&nbsp;性能优化的整体思路是什么16.&nbsp;优化的收益怎么衡量17.&nbsp;怎么分组快速发现新改动的性能问题(AB实验)18.&nbsp;安卓内存泄漏的场景19.&nbsp;kotlin协程的理解20.&nbsp;多线程读取数据可能会有哪些问题,可以通过什么方式避免21.&nbsp;100瓶水,有1瓶是毒药,喝了1天后会毒发,最少多少只小白鼠和最短几天可以测出来(二进制编码)22.&nbsp;之前考了很多笔试了,就不考了,开始反问依然是从二面开始。过十三面(1h10min)1.&nbsp;自我介绍2.&nbsp;实习介绍3.&nbsp;介绍几个技术上挑战比较大的,提升比较多的4.&nbsp;介绍下java和c++通信的细节5.&nbsp;数据转换有性能上的问题吗6.&nbsp;C++和Kotlin/Java的差异有哪些7.&nbsp;SQLite使用有遇到存储和删减导致数据库文件庞大的情况吗8.&nbsp;数据库索引是怎么提高查询速度的,原理是什么9.&nbsp;除了xml解析还有没有看过其他三方库的源码10.&nbsp;okhttp的架构是怎么设计的,有哪些印象深刻的设计,哪些觉得设计得不够好的11.&nbsp;场景:微信朋友圈滑动卡顿,会怎么分析12.&nbsp;卡顿是由于什么引起的13.&nbsp;图片加载过多为什么会引起卡顿(频繁gc)14.&nbsp;怎么解决频繁gc的卡顿问题15.&nbsp;设计一个图片缓存库,会怎么设计(三级缓存)16.&nbsp;不同尺寸、分辨率的图片怎么标识(key怎么设计)17.&nbsp;不同尺寸的同一张图片怎么关联起来18.&nbsp;内存缓存图片的淘汰思路19.&nbsp;图片在磁盘的存储思路(包括图片命名,文件夹命名,图片查找策略等等)20.&nbsp;图片在磁盘的淘汰策略(包括使用频率记录方法、关联其他图片、删除方法、直接删一半空间的策略等等)最后的场景被拷打麻了。。。已经不知道自己是谁了最终等了一周还是通过了。谨以此贴记录字节面试经历,也希望能带给后来人一些参考
字节求职进展汇总
点赞 评论 收藏
分享
评论
6
59
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务