暑期后端高频问题汇总

菜鸡暑期一共面了40+场的大厂的面试,在这里汇总我遇见的问题及高频问题,希望帮助到五月份的同学们拿到暑期offer。先叠个甲,可能因为学历问题,腾讯以及阿里给我的面试并不多,40场中接近一半是字节,所以可能会有一些内容不涉及,仅作参考。

计算机网络

  1. TCP三次握手四次挥手,为什么是三次四次问题
  2. time_wait状态的作用,以及为什么持续时间是2MSL?现代网络发展中,这个还是固定的2MSL吗?
  3. TCP超时重传机制,sack算法,hpack算法
  4. TCP拥塞控制(慢启动,拥塞发生,拥塞避免,快速恢复)
  5. HTTP2和HTTP3的特点

操作系统

  1. 进程间通信方式
  2. Linux为何采用页式内存管理
  3. io多路复用,epoll和select、poll的区别
  4. 零拷贝(mmap,zerofile)这个可以结合rocketmq和kafk来说

Mysql

  1. innoDB采用的数据结构
  2. 为何采用B+树而非其他结构
  3. 什么叫覆盖索引
  4. 什么叫索引下推
  5. 联合索引的最左前缀法则,注意优化器可以优化where的条件顺序
  6. RR隔离级别下,readview和锁机制如何减少幻读的发生的
  7. undo log的WAL机制
  8. 主从复制的同步机制、半同步机制、异步机制
  9. 慢sql查询优化思路

Redis

  1. 常见的数据结构(string,list,hash,set,zset)
  2. zset的底层实现
  3. redis实现分布式锁(原子性,如何避免死锁等问题)
  4. aof重写机制
  5. rdb的写时复制技术
  6. redis集群分片为何采用gossip协议同步元数据
  7. redis集群分片解决单机实例压力大的问题
  8. mysql与redis的数据一致性问题

Java

  1. HashMap的原理
  2. ConcurrentHashMap的原理
  3. synchronized关键字在字节码层面的原理
  4. synchronized和reentrantlock的区别
  5. ThreadLoacl内存泄露问题
  6. 双亲委派机制
  7. g1垃圾回收器和cms垃圾回收器对比

Mq

  1. mq如何保证数据不丢失
  2. mq如何保证消息的顺序性消费
  3. rocketmq和kafka的架构区别
  4. rocketmq如何实现的事务消息
  5. rocketmq如何实现的延时消息

场景题

  1. 设计一个自己的配置中心。这个问题问了非常多次,可能和我的实习有关系,我感觉起码问了10次这道设计。我通常回答从下面三个角度来想:
  2. 服务端的推模式(SSE、websocket)
  3. 客户端的长轮询 + 事件驱动拉模式
  4. 推拉结合模式
  5. 使用双buffer设计一个无锁的高效并发系统

算法题

  1. 反转链表
  2. 判断回文链表
  3. 数组第K大元素(快速选择)
  4. 最长回文子串(dp+中心扩散)
  5. 带过期时间的LRU(堆)
  6. 编辑距离(dp)
  7. 链表是否存在环
  8. 多线程顺序打印
  9. 36进制加法 + 链表相加组合题
  10. 最长递增子序列(nlogn时间复杂度)
  11. 由前序遍历和中序遍历构建树
  12. 全排列
  13. 带重复数字的全排列

大部分问题其实还是蛮经典的,希望能帮助到各位同学,可以的话能不能给点花花想当校招领航者

#字节跳动##暑期实习##Java##后端##牛客创作赏金赛#
全部评论
花花已给
1 回复 分享
发布于 昨天 01:47 辽宁
mark收藏
点赞 回复 分享
发布于 今天 09:18 广东
mark收藏
点赞 回复 分享
发布于 今天 07:28 江苏
mark收藏
点赞 回复 分享
发布于 今天 00:42 湖南
mark收藏
点赞 回复 分享
发布于 今天 00:37 广东
mark
点赞 回复 分享
发布于 昨天 23:29 北京
mark
点赞 回复 分享
发布于 昨天 23:21 广东
mark收藏
点赞 回复 分享
发布于 昨天 22:56 上海
mark收藏
点赞 回复 分享
发布于 昨天 20:35 山西
mark
点赞 回复 分享
发布于 昨天 16:08 四川
mark收藏
点赞 回复 分享
发布于 昨天 15:56 陕西
mark收藏
点赞 回复 分享
发布于 昨天 14:34 重庆
Mark
点赞 回复 分享
发布于 昨天 13:53 江西
mark
点赞 回复 分享
发布于 昨天 11:42 广东
mark收藏
点赞 回复 分享
发布于 昨天 11:31 陕西
mark收藏
点赞 回复 分享
发布于 昨天 11:12 北京
mark收藏
点赞 回复 分享
发布于 昨天 11:06 河南
mark收藏
点赞 回复 分享
发布于 昨天 10:32 北京
mark收藏
点赞 回复 分享
发布于 昨天 10:24 天津
点赞 回复 分享
发布于 昨天 10:13 安徽

相关推荐

从输入URL到页面加载发生了什么:总体来说分为以下几个过程: 1.DNS解析 2.TCP连接 3.发送HTTP请求 4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面 6.连接结束。简述了一下各个过程的输入输出作用:以下是对从输入 URL 到页面加载各过程的输入、输出或作用的一句话描述:DNS 解析: 输入:用户在浏览器地址栏输入的域名(如 www.example.com)。输出:对应的 IP 地址(如 192.168.1.1)。作用:将易于记忆的域名转换为计算机能够识别和用于网络通信的 IP 地址,以便浏览器与目标服务器建立连接。TCP 连接: 输入:浏览器获得的服务器...
明天不下雨了:参考一下我的说法: 关键要讲出输入网址后涉及的每一个网络协议的工作原理和作用: 涉及到的网络协议: HTTP/HTTPS协议->DNS协议->TCP协议->IP协议->ARP协议 面试参考回答: 第一次访问(本地没有缓存时): 一般我们在浏览器地址栏输入的是一个域名。 浏览器会先解析 URL、解析出域名、资源路径、端口等信息、然后构造 HTTP 请求报文。浏览器新开一个网络线程发起HTTP请求(应用层) 接着进行域名解析、将域名解析为 IP 地址 浏览器会先检查本地缓存(包括浏览器 DNS 缓存、操作系统缓存等)是否已解析过该域名 如果没有、则向本地 DNS 服务器请求解析; 本地服务器查不到会向更上层的 DNS 服务器(根域名服务器->顶级域名服务器->权威域名服务器询问)递归查询 最终返回该域名对应的 IP 地址。(应用层DNS协议)DNS 协议的作用: 将域名转换为 IP 地址。 由于 HTTP 是基于 TCP 传输的、所以在发送 HTTP 请求前、需要进行三次握手、在客户端发送第一次握手的时候、( 浏览器向服务器发送一个SYN(同步)报文、其中包含客户端的初始序列号。TCP头部设置SYN标志位、并指定客户端端口 同时填上目标端口和源端口的信息。源端口是浏览器随机生成的、目标端口要看是 HTTP 还是 HTTPS、如果是 HTTP 默认目标端口是 80、如果是 HTTPS 默认是 443。(传输层) 然后到网络层:涉及到(IP协议) 会将TCP报文封装成IP数据包、添加IP头部,包含源IP地址(浏览器)和目标IP地址(服务器)。IP 协议的作用: 提供无连接的、不可靠的数据包传输服务。 然后到数据链路层、会通过 ARP 协议、获取目标的路由器的 MAC 地址、然后会加上 MAC 头、填上目标 MAC 地址和源 MAC 地址。 然后到物理层之后、直接把数据包、转发给路由器、路由器再通过下一跳、最终找到目标服务器、然后目标服务器收到客户的 SYN 报文后,会响应第二次握手。 当双方都完成三次握手后、如果是 HTTP 协议、客户端就会将 HTTP 请求就会发送给目标服务器。如果是 HTTPS 协议、客户端还要和服务端进行 TLS 四次握手之后、客户端才会将 HTTP 报文发送给目标服务器。 目标服务器收到 HTTP 请求消息后、就返回 HTTP 响应消息、浏览器会对响应消息进行解析渲染、呈现给用户
点赞 评论 收藏
分享
04-29 17:25
中山大学 Java
被普调的六边形战士很高大:大家都一样毕竟是沉默的大多数
点赞 评论 收藏
分享
评论
95
332
分享

创作者周榜

更多
牛客网
牛客企业服务