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 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 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 实例放在哪个区,常量放在哪个区;
说一下Netty的IO原理
Java GC
HashMap实现、ConcurrentHashMap,是否是线程安全、原因,为什么使用红黑树和平衡二叉树的区别,HashMap扩容时,对读写操作有什么特殊处理 (2次)
Lock 和 Synchronized 的 区别
volatile 和 Synchronized 的 区别
乐观锁和悲观锁的区别
Java CAS
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
字节跳动后端社招面经(二面、三面)
一年工作经验跳槽字节跳动社招经历分享