腾讯QQ-26届暑期实习-后台开发一面面经
这是我第一次参加大厂面试,真的非常紧张。面试官一开始让我自我介绍,我太紧张,只简单说了一句“我是xx学校大三软件工程专业的学生”,没有提到我的项目和获奖经历,感觉这部分就答得不太好了
八股:
- 主推语言
- Java
- MySQL的索引类型
- 我提到了主键索引、普通索引、唯一索引、全文索引,并简单介绍了索引的工作方式。
- MySQL常见的存储引擎
- 我提到了InnoDB,并介绍了其机制。
- InnoDB的底层数据结构
- 我回答是B+树,并解释了B+树的结构。
- 为什么不用 B 树
- 我解释了B+树相对于B树的优点,特别是磁盘读写性能更高。
- B+树在范围查找中的性能优势
- B+树的叶子节点通过指针相连形成有序链表,使范围查找更高效
- Java中的集合
- 从Collection和Map两方面介绍
- HashMap的线程安全性
- 我回答HashMap不是线程安全的,并提到ConcurrentHashMap是线程安全的。
- ConcurrentHashMap如何保证线程安全
- 我解释了ConcurrentHashMap使用了分段锁机制。
- ConcurrentHashMap与synchronizedMap的性能比较
- 不知道
- HashMap如何解决冲突
- 我详细解释了拉链法解决哈希冲突,并提到哈希表变大后会转为红黑树存储。
- 其他解决哈希冲突的方式
- 我想到了线性探测法,但无法详细说明
- Redis常用的数据结构
- String、Set、List和Sorted Set
- Sorted Set的底层数据结构
- 我提到了跳表和压缩链表,但无法详细解释压缩链表的实现。
- Redis的持久化机制
- 我提到了RDB持久化和AOF持久化。
- TCP和UDP
- TCP的三次握手和四次挥手,以及UDP的传输速度快但不可靠
- TCP的头部结构
- 我按顺序解释了TCP头部存储的不同参数。
- TCP头部中的校验和占多少位
- 我回答是16位。
- HTTP中的403错误码
- 我解释了403错误码表示禁止访问,服务器拒绝客户端的请求,可能是权限或资源问题。
算法:
面试官让我在自己的IDE上写代码。要求在15分钟内完成快速排序和二叉树的中序遍历(要求用迭代法)
- 快速排序:直接写代码
- 快排是否稳定:我回答不稳定。
- 快排不稳定的原因:我解释了快排依赖于交换操作,可能导致相等元素的相对位置发生变化。稳定的排序算法:我提到了冒泡排序、插入排序和归并排序。
- 二叉树中序遍历:直接写代码,用栈模拟递归过程,首先将根节点及其左子节点依次入栈,直到左节点为空,然后弹出栈顶节点,再将右子节点作为新的根节点,重复这个过程
在这里插一句,山羊算法后端训练营的算法课程真的帮了我大忙!像快速排序和二叉树遍历这类题目,训练营里都有详细的讲解和真题训练,尤其是迭代法中序遍历,课上讲得非常透彻,让我在面试中能够快速理清思路。而且训练营的老师们还会根据大厂常考的算法题进行专项突破,真的是面试前的“救命稻草”!
总结
这次面试虽然紧张,但整体表现还算不错。面试官问了很多关于Java集合、MySQL、Redis、TCP/UDP以及算法的问题,涵盖了后台开发的多个核心知识点。 对了,训练营最近还推出了模拟面试服务,由大厂在职工程师亲自模拟面试,帮你提前熟悉面试流程,找到自己的薄弱点。像我这次面试前就参加了一次模拟面试,真的让我在实战中少踩了很多坑!在面试中想做到游刃有余的话,可以试试这个服务,绝对物超所值!
#暑期实习##计算机##后端开发##Java##腾讯#