• 字节面经总结


    网络相关

    Https的过程讲一下。先是说了http+ssl,dns之后,准备讲ssl的原理时,他示意我说回答一下传输层相关的。然后我就回答了tcp三次握手,对着服务器端指定端口,比如80端口发起连接,之后就是正常的数据请求了。

    TCP四次挥手,结合CS两端点的TCP栈和上层应用的交互来解释四次挥手,以及为何需要中间那个FIN-WAIT-2这个过程,最后由被动关闭一方的上层应用通过调用socket.closed()来结束数据传输,进入最终的FIN模式;

    一个完整的 HTTP 请求会涉及到哪些协议?

    HTTP 和 HTTPS 的区别

    详细描述一下 HTTPS 的加密过程,需要几次通信

    tcp/ ip 模型 和 osi模型

    TCP 拥塞控制

    一个 10M 大小的 buffer 里存满了数据,现在要把这个 buffer 里的数据尽量发出去,可以允许部分丢包,问是用TCP好还是UDP好?为什么?

    Mysql相关

    MySQL left join、inner join

    MySQL 事务的四个隔离级别

    Mysql 的幻读是怎么个情况,Mysql 是如何避免的。

    B 树 和 B+ 树的区别,为什么 mysql 要用 B+ 树,mongodb 要用 B 树 (3次)

    Mysql 集群如何保证数据的一致性

    Mysql 索引 聚簇索引和非聚簇索引的区别 (3次)

    联合索引和列选择性

    innodb 引擎 优点

    假如要查A in () AND B in (),怎么建索引?

    假如用id翻页的方式,数据库表如何设计?索引如何设计?

    假如量很大,你觉得需要分库分表吗?怎么分? 分库分表后怎么查询分页? 分库分表后怎么保证主键仍然是递增的?

    现在需要支持深分页,页码直接跳转,怎么实现?

    瞬时写入量很大可能会打挂存储,怎么保护?

    binlog 日志和 redolog 日志清楚吗

    Redis相关

    缓存穿透和缓存击穿

    redis setnx + expire 有什么缺点,如何优化(2次)

    分布式锁 (2次)

    redis 的跳表,为什么不用红黑树

    redis 集群是怎么实现的,说一下一致性 hash

    Redis数据结构 (2次)

    ZSet实现,zrange start, stop,总长度为n,复杂度是多少 (3次)

    zset 延时队列怎么实现的

    Redis 的 ZSET 做排行榜时,如果要实现分数相同时按时间顺序排序怎么实现?

    redis 的持久化

    消息队列

    rabbitmq 的工作原理。

    kafka 的工作原理,如何保证顺序

    kafka消费者如何消息去重

    Kafka的ConsumerGroup

    操作系统

    操作系统内存模型

    select 和 epoll

    进程的调度

    Java语言

    java 实例放在哪个区,常量放在哪个区;

    说一下Netty的IO原理

    Java GC

    HashMap实现、ConcurrentHashMap,是否是线程安全、原因,为什么使用红黑树和平衡二叉树的区别,HashMap扩容时,对读写操作有什么特殊处理 (2次)

    Lock 和 Synchronized 的 区别

    volatile 和 Synchronized 的 区别

    乐观锁和悲观锁的区别

    Java CAS

    Go语言

    Go 协程简单用法;

    Go func与method之前的那个Receiver是什么?

    Go的闭包语法

    GMP 调度模型

    Context 的用法

    Go 的垃圾回收是怎么实现的,好在哪里,不好在哪里

    Go 的逃逸分析

    微服务

    断路器内部怎么实现的?断路器会造成写入失败,假如我们不允许写入失败呢?

    任务系统怎么保证任务完成后发奖一定成功

    常识

    让你设计一个限流的系统怎么做? 令牌桶

    实现简单令牌桶算法

    令牌桶,加上随时间滑动的要求,即:限制用户在任一连续的一小时内,不能超过5W的请求。

    自旋锁和互斥锁有什么区别

    打开一个 URL 的过程 (2次)

    Token、Session、Cookie 是什么

    时序型数据库的存储结构是怎么样的?

    LSM树了解吗?是一种什么存储结构

    系统设计

    设计一个微信朋友圈系统

    类似于设计一个长链接转短链接

    Mysql 集群在保证强一致性的情况下,如何保证高并发

    设计一个海量日志写入系统

    让你设计一个延时任务系统怎么做 说了两个方案,一个是使用 redis 的 ZSET 来实现,考虑分片来抗高并发,使用 redis 的持久化来实现落地,使用 redis 的哨兵实现故障转移。 一个是使用时间轮的方法。

    现有一个随机数生成器可以生成0到4的数,现在要让你用这个随机数生成器生成0到6的随机数,要保证生成的数概率均匀

    算法题

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
    如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
    您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
    示例:
    输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
    输出:7 -> 0 -> 8
    原因:342 + 465 = 807

    算法题是股票买卖,一次和无限次两种。

    链表求和

    最小覆盖子串

    670.最大交换

    正整数开根号,保留两位小数

    一个无序数组找其子序列构成的和最大,要求子序列中的元素在原数组中两两都不相邻

    有 N 枚棋子,每个人一次可以拿1到 M 个,谁拿完后棋子的数量为0谁就获胜。现在有1000颗棋子,每次最多拿8个,A 先拿,那么 A 有必胜的拿法吗?第一个人拿完后剩余棋子的数量是8的倍数就必胜,否则就必输。

    给出一棵二叉树的根节点,现在有这个二叉树的部分节点,要求这些节点最近的公共祖先。

    参考:
    字节跳动社招后端一二三面已过丶以及学习感言
    字节跳动 |go 后端开发工程师社招一二三四五面面经|2022
    字节跳动后端社招面经(二面、三面)
    一年工作经验跳槽字节跳动社招经历分享

  • 相关阅读:
    光流法动目标检测
    ZooKeeper面试那些事儿
    详解synchronize关键字
    数据结构——队列
    [acwing周赛复盘] 第 64 场周赛20220813
    win10环境安装使用docker-maxwell
    IOS OpenGL ES GPUImage 图像阈值边缘检测GPUImageThresholdEdgeDetectionFilter
    洛谷-P2240-部分背包问题
    Java代码优化的30个小技巧
    『现学现忘』Docker基础 — 42、补充:save和load命令说明
  • 原文地址:https://blog.csdn.net/yr12Dong/article/details/127418767