校招字节教育后端面经

具体问题以下分类总结:

Java

  1. synchronized,lock,AtomicInteger 底层原理
  2. HashMap,ConcurrentHashMap 底层结构原理
  3. 讲讲服务注册于发现。这部分主要讲了springcloud eureka 和部分 zookeeper,zookeeper的选举机制
  4. spring AOP 的实现方式, siglib 能否代理final修饰的类
  5. jvm 垃圾回收过程,并详细讲一种垃圾回收器
  6. 强引用,软引用,弱引用,虚引用应用场景

计网

  1. 拥塞控制和流量控制
  2. 快重传和超时重传
  3. 为什么四次挥手后客户端等2MSL
  4. DNS解析全过程
  5. http2.0,http3.0
  6. https的连接过程
  7. CA证书的验证过程
  8. RPC框架了解吗
  9. 如何设计 基于udp的可靠传输
  10. tcp如何保证数据安全性的,磁盘如何保证数据不丢的,应对坏道情况,这个应该是问数据备份的,不是很懂。

操作系统

  1. 阻塞io和非阻塞io
  2. 进程和线程区别,通信方式分别是什么
  3. 虚拟内存和物理内存
  4. linux 按 ctrl + c 中断的原理
  5. 协程高效在哪

Mysql

  1. Innodb,B+树,聚簇索引和非聚簇索引区别
  2. 一千万条数据,问 b+ 数大概多高
  3. 为什么用 b+ 树而不是 b树,红黑树
  4. 在设计联合索引需要注意什么
  5. 联合索引最左原则的底层原理
  6. mysql 的 MVCC 以及是否解决幻读
  7. 手写sql,实现一个 按时间降序的分页查询
  8. redo log,bin log,undo log

Kafka

  1. kafka的rebalence
  2. ISR
  3. 如果新加进一个消费者会发生什么
  4. 如何保证数据一致性

Redis

  1. RDB和AOF区别
  2. 为什么RDB 要 fork 子进程而不是线程
  3. redis基本数据类型
  4. zset的底层数据结构,跳表何时增加高度
  5. 分布式 redis,缓存和数据库读写不一致,答 延迟双删
  6. 面试官让随便讲讲redis,所以还说了缓存穿透,击穿,雪崩以及处理方法

场景题和智力题

  1. 打字的智能提示和纠错的原理,让你来设计,你怎么做。
  2. 如果有一个访问过的所有网站的记录集合,如何快速判断当前网站是已经访问过。(考虑布隆过滤器)
  3. 从一个网站下载的时候,进度条如何实现的。
  4. 64匹马,八个赛道,问至少跑多少次能找到最快四匹马。
  5. 操作系统给你一块空闲内存,你如何设计使用和回收。

手撕代码

  1. 柱状图中矩形最大面积 leetcode 84
  2. 查找第k小的数,用堆以外的方法做
  3. 给m个房子涂n种颜色,相邻房子不同色,cost[i][j]表示给i号房子涂j颜色代价,求最小上色总成本。力扣应该有原题

其他

还有就是聊项目,面试过程体验很好,面完第二天中午hr准时通知并安排下一场面试,三面后三个工作日就发了offer。
面试重基础,重思考能力,遇到问题尽量不要说不会,而是顺着面试官的方向合理推测一下。自己多说些,面试官问的就会少一点,往熟悉的方面引话题。
2020年互联网太卷了,愿大家都能上岸,找到理想工作。
#面经##校招##字节跳动##Java工程师#
全部评论
这感觉也太难了
3 回复 分享
发布于 2021-01-12 02:56
恭喜楼主,欢迎楼主来做同事。 2020 都不容易,但现在是 2021 了 借楼打波广告,不仅是后端,字节客户端也有 hc,北京、上海、深圳均有岗位 还在看机会的 20 届同学和考研同学简历砸我,另外也有 21 届实习机会,欢迎师妹师弟来
2 回复 分享
发布于 2021-01-11 18:43
楼主请问算法是直接写嘛还是说思路就行
点赞 回复 分享
发布于 2021-01-28 11:02
实习还是校招
点赞 回复 分享
发布于 2021-01-12 17:24
楼主base哪里啊
点赞 回复 分享
发布于 2021-01-12 16:57
楼主研究生学历吗🙄
点赞 回复 分享
发布于 2021-01-12 03:27
答出了几成
点赞 回复 分享
发布于 2021-01-12 01:25

相关推荐

04-22 23:15
中南大学 Java
时间:4.21公司地点:北京时长:52min做了一些简化,提取了更有借鉴价值的部分1. 部门介绍2. 自我介绍3. 这两个项目你觉得哪个项目复杂度高一些,可以多聊一会4. 你这个项目主要是想解决什么样的问题呢5. 你刚才说这些方法的话,应该说也是社区内或者说比较常见的一些处理方式了,对吧?我都或多或少都能get到,但是我有一个问题,就是**你做这件事情之前,就是每一个技术的应用之前,你有没有去验证这个技术确实提升了准确率呢**6. 我们的这些处理方式是否真正的真的提升了它的准确率。就是我们只是堆砌技术,还是说我们确确实实是提升了这件事情?7. 你这一知识库当时怎么选的?你做的知识库是什么类型的知识库?8. 那你这知识库里面涉及了哪些方面的内容?比如说文学类的,还是什么科技类的?是什么航天类的等等?有没有就说具体一些?9. 那你这个博客内容写的多吗?10. 那如果14篇文章的话,而且你这14篇文章看起来所涉及的范围是比较发散的,那么在这种情况下,其实这个rag的检索本身就不容易出现,刚才说的那个检索有问题的情况,这可能本身就不是个问题。11. 在我们去真正去做一件事情这的处理的时候,其实我们还是应该先去有一个度量的标准,不然我们优化可能是负优化,我们都不知道对吧?就是说我现在要做 rag 检索。我要去先做一个度量的方式,然后去验证它的准确率,你应该怎么做?12. 你怎么判断问题回答是准确的13.那么我怎么看到线上的这些回答的准确率呢?14. 有必要搞多级缓存吗15. 好,那首先就多级缓存来说,你觉得,它有什么弊端,还有它有什么优势?这个讲一下。16. 我有一个问题,首先其实我们一般认为 redis 它的那个吞吐是非常高的,而且如果说我们比如说数量很大,Redis 它也是支持那个多节点对吧,比如说…… 不管是哪种方案吧,Redis 也可以支持多节点的这种部署,所以在这种情况下的话,我们认为 redis 从网络压力这一块是没有太大问题的。那么在你看来,有了 redis 的话,我们还要去引入本地缓存的主要目的是什么?因为刚才你说的只是为了减少网络开销。 但是现在我们实际的生产环境中 redis 的是网络开销 其实是没什么太大的问题的。你应该明白我的意思,就是 redis 网络开销不是它的核心问题,就是我为什么非要引入本地缓存17. 我看后面你还自己写过两个 SKILL 对不对?能具体展展开一个就是你可能平时,有没有平时用的比较多的,我想知道不是那种为了写而写的那种,就真正能解释你生活中问题的那种 SKILL18. 你最近面试多吗?19. 那八九场的话,就是你觉得你做的自己就是面试,就是相当于面试自己的这种 Skill 和你真正去面试中拿到的面试题,它相似度高吗?>我是我当时了解到,主要是主要是因为网络开销的问题,进一步提升响应速度20. 说实话 redis 并不存在很大量的网络开销问题  对不对?21. 我看后面你还自己写过两个 SKILL 对不对?能具体展展开一个就是你可能平时,有没有平时用的比较多的,我想知道不是那种为了写而写的那种,就真正能解释你生活中问题的那种 SKILL22. 你最近面试多吗?23. 那八九场的话,就是你觉得你做的自己就是面试,就是相当于面试自己的这种Skill和你真正去面试中拿到的面试题,它相似度高吗24. OK, 那你觉得你这个 SKILL 有没有帮你解决到一些实际面试中的问题,有没有确实命中的一些面试中的一些真正的面试题25. 对你来说,现在比如经验完经历完这场面试之后,你觉得你的 SKILL 应该如何提升呢?26. 你理解什么叫 CAS?27. 那它和悲观锁有什么不同?那首先第一个问题就是纯靠CAS就能解释就能实现这个乐观锁吗?28. 解释一下volatile的这个关键字的目的和作用29. 既然我们提到了CAS操作就一定能保证。并发更新的安全性了。那么我们为什么还要用 volatile 去修饰这个变量呢?这不多此一举吗?30. 好,那继续问 CAS 里面会有什么问题?就它会有什么其他的什么问题呢?31. 你了解 CAS 的 ABA 问题吗?32. 讲一下怎么解决就可以了33. 那现在回到这儿来说就是有乐观锁和悲观锁两种锁,对不对。那么,我什么时候要选择乐观锁?什么时候要选择悲观锁?你看,我们知道 JDK 里面 synchronized 的关键字是悲观锁,对吧?而 ReentrantLock 是个就是这种我们一般认为是 CAS+volatile 这种乐观锁的方式那么这两种方式的话,你觉得我们在应用中。什么情况下会采用乐观锁?什么时候要采用悲观锁?34. 为什么?35. 这个我知道好,那现在问一个问题 就是说,既然高并发情况下用悲观锁就很好,那我无脑用悲观锁不就完了吗?就是既然说。乐观锁有就是说并发高了,它就不行,自选浪费 CPU,对吧?那我无脑用悲观锁,不就 OK 了吗?不挺好的吗?36.那还有一个问题,就是我们刚才说的这些并发的处理的方式。都是基于一个理念叫共享内存,对吧,相当于都是无论是悲观锁还是乐观锁,我们都相当于是要在对象上加锁,然后限制一些线程的进入和退出,对不对。 那么有没有别的方式照样可以实现并发更新的?并发更新的这样的一个方式,就除了共享内存方式,还有没有别的。比如说或者说我这么说吧,就全世界上处理同一个数据的多线程更新的这个问题,只有乐观锁和悲观锁两种方式吗?是非阻塞不能处理吗?因为不管是哪个锁,其实都会进入到一个阻塞的状态,对吧?必须是通过阻塞的方式才能搞实现多线程对同一变量的更新吗?37. 手撕环节:[电话号码的字母组合](*******************************************************************)48. 反问环节
查看30道真题和解析
点赞 评论 收藏
分享
评论
19
208
分享

创作者周榜

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