字节客户端开发3面总结(已OC)

提前批投的飞书后端,简历秒挂,找大佬捞的,转到了客户端开发(基本没问客户端知识)

一面 (1小时)

  1. 手撕二叉树Z遍历(力扣)
  2. 编译原理
  3. JVM回收算法
  4. CPP如何实现垃圾回收
  5. UDP与TCP,以及UDP如何保证可靠传输(quic)
  6. 介绍项目技术栈,深挖项目
  7. 强引用弱引用软引用虚引用对比
  8. 标记对象可回收算法
  9. JVM内存模型
  10. JVM类加载方式:双亲委派详细介绍过程
  11. 介绍google inject(依赖注入框架)及依赖注入的优点
  12. LRU算法及其实现
  13. LinkedListHashMap底层原理
  14. ...

二面(1小时)

  1. 递归的处理过程
  2. 设计模式(单例模式,建造者模式,代理模式,工程模式等)
  3. 项目技术栈,深挖项目
  4. 常用算法对比(DP, 回溯, 贪心,分支限界)
  5. 递归写个斐波那契
  6. 项目中遇到的难题
  7. 数组链表区别
  8. 页面置换算法,内部碎片产生
  9. 进程线程
  10. 设计操作系统需要实现哪些功能:进程管理,文件管理,内存管理,IO管理等
  11. 未来发展移动端发展趋势
  12. ...

三面(1.5小时)

  1. 介绍项目技术栈,深挖项目
  2. 项目中使用的Hash算法生成token过程
  3. HashMap 结构,扩容,负载因子,putVal过程
  4. 手撕删除链表中所有重复结点(递归写出来了,迭代没有)
  5. 介绍MQ(RabbitMQ与Kafka)
  6. 介绍微服务
  7. 是否愿意转客户端
  8. hashTable是否线程安全,如何实现线程安全
  9. 场景题: 不使用消息队列,如何实现服务之间数据通信(Http长轮询 和 类似于实现发布订阅机制的中间件如redis)
  10. redis 与 MC 对比, 为何选在redis
  11. 介绍小程序的优缺点
  12. 未来职业规划
  13. ...

总结:字节笔试好评,每次结束后大概10分钟收到后续结果,三轮通过后直接走流程,3天后收到意向书
力推字节

#字节跳动秋招提前批##字节跳动##面经#
全部评论
看起来好难啊
1 回复 分享
发布于 2021-08-28 15:28
笔试怎么过
1 回复 分享
发布于 2022-03-04 16:39
楼主是啥学校的呀
点赞 回复 分享
发布于 2021-08-21 01:06
哪个部门呀
点赞 回复 分享
发布于 2021-08-21 08:17
楼主三面也是10分钟就收到oc了吗
点赞 回复 分享
发布于 2021-08-21 16:50
都没写题?
点赞 回复 分享
发布于 2021-08-30 14:51
我也是,字节后端之前还会捞我,由于笔试太菜,我现在只有客户端了😂
点赞 回复 分享
发布于 2021-09-05 03:39
后端难度面客户端太惨了😢如果后端不卷的话感觉大佬能oc的
点赞 回复 分享
发布于 2022-03-11 04:37

相关推荐

算法题: 1, 2, 5, 10 硬币组成n元的组合方式答: 完全背包的动态规划, 但是递推公式有点问题, 没做出来, 应该是求出用不用第i硬币的加法而不是取max类似:********************************************************问题1. 上次面试有哪些不会?学了吗?2. 什么情况下数据会进入老年代?3. JVM老年代会不会被GC?4. 为什么GC要分成不同的年代?5. GC的分代内存是连续的还是零碎?各有什么好处?坏处?6. 数据链路层、网络层、传输层为啥要分层, 各层的职责7. 那为啥要分呢, 不分不是更好8. 传输层 什么是链接?9. 如果网络某一个路由器断开3s, 链接还存在吗?10. 进程间通信方式共享内存, 进程A 存放字符串的指针, 进程B读指针,然后print(指针) 会打印出什么?11. 你能讲讲你个人的优势在哪里?回答:1. 上次关于JVM进程的详解没有讲清楚, 这次详细讲解了new 一个对象的全过程● 类加载检查, 看下这个对象所属的类有没有加载、链接、初始化成功, 否则先加载类(JVM类加载具有动态加载的特性)● 分配内存, 分配方式根据内存模型的规整与否(关系GC的选择)● 内存零值赋值● 初始化对象头,包括这个对象的年龄代、字面量、属于哪个类的元数据等, 其实就是标记字段 + 类 指针● Init(), Java程序看起来,对象的创建函数,字段init(), 对象的地址分配给引用变量● JVM内存模型分为不同的年龄代, Eden Survivor Old等● 年龄代存在对象头中, 用于记录GC情况, 当一个对象对于GC Root没有被引用的地方,即不可达时, 会被标记, 后续再次会被删除2. Eden在经过一次MoniGC 还存活的对象进入S0、S1区, 年龄+1, 年龄超过GC器阈值(0 -15)可以进入老年代, 同时大对象也可以进入老年代3. 会。被回收的直接原因是因为对象的引用可达性不存了,GC一般分为部分GC和Full GC, 部分GC可以在单独的Eden、Old乃至混合区域GC,如果内存不够还会触发Full GC 引用不可达的老年代对象一样会被删除4. 不同年代内存区域有各自的适用范围, 比如Eden每时每刻都会有大量的对象死去, 适用用标记-复制, 而老年代对象存活时间较长, 用标记-清除、标记-整理更好, 分代GC效率更高5. 零碎的。零碎的好处是空间利用率高, 只需要一个逻辑标识就能知道是哪个年龄代, 坏处是没有利用好空间局部性。连续的好处是利用了空间局部性, 但是容易有碎片。6. 有点问穿, 数据链路层的基本单位是数据帧, 用于咋局域网内的物理机器地址mac传输, 网络层是在不同的子网内ip传输, 传输层是在找到了应用端间口建立的稳定或者不稳定的链接7. 。。。。我回到是耦合性, 解耦了, 不同层有不同的协议解决各自的问题, 混沌系统太复杂的很难排查, 分层每次只需要接受下层接口,给上层提供服务就行,而不用关心实现细节8. 我认为的链接是指在目标端口的过程中, 无论是IP协议会在不同路由器留下转发映射, 还是APR协议留下目标MAC IP转换, 在逻辑上是有一条通路的, 这就是链接9. 我认为如果路由器的ip映射也消失了, 就会断开链接, 如果没有不一定会断开, 还会重新去找路径链接, 如果在没有超过ACK确认的时间内找到了则不会断开(这段感觉在胡言乱语)10. 这不太会, 我答的是地址或者HashCode, 提到了很多虚拟地址的情况, C++相关的问题, 后面查资料是因为每个进程的虚拟地址空间不一样, 进程B是打印不对的11. 从个人专业学习、工程经验、团队经验、个人性格四个方面回答
查看11道真题和解析
点赞 评论 收藏
分享
02-17 11:22
已编辑
华南师范大学 C++
2/13 一面75min你的ai项目是怎么去构建的,你在其中承担了什么工作(没回答道他想要的点,反复问了好几次)2,你的项目有用到aop,请你讲讲aop,你具体是怎么在项目实现的(代码实现)3,如果不用java提供的切点表达式和通知,你该怎么实现aop4,给你一个sql语句(主键a,联合索引b,c,select a,b,c from table where b = x and c = y and a = z),请问他的索引有没有使用,请你说说他具体是怎么查找的5,上面的语句你可以怎么进行优化,在不改变mysql字段的情况下你该怎么进行代码层面的优化6,请你讲讲事务的特性,请你讲讲undolog,redolog,binlog的区别,他们在一条sql语句执行后分别会做什么7,请你讲讲事务的隔离性,请你讲讲mvcc,请你说说mvcc有哪些优点和缺点8,请问你的学习成绩怎么样,你的绩点多少9,一条https的url从按确认到数据渲染到页面这期间发生了什么10,请你说说http和https的区别11,请你说说tls用了什么加密技术,对称加密和非对称加密的优缺点12,项目中用到websocket,请你解释一下它的使用场景,它的优缺点,你是否还有其他代替使用。算法题 最长连续非重复字符串2/14 二面60min算法题 硬币组合数(写出来20分钟,讲解20分钟)你有上过哪些数学课,讲讲微积分的概念,贝叶斯定理讲讲OSI七层模型,讲讲数据链路层的主要职责,网络层的主要职责没了。。。。2/17  感谢信  二面寄
查看14道真题和解析
点赞 评论 收藏
分享
评论
5
63
分享

创作者周榜

更多
牛客网
牛客企业服务