恭喜发现宝藏!搜索公众号【TechGuide】回复公司名,解锁更多新鲜好文和互联网大厂的笔经面经,目前已更新至美团、微软…
作者@TechGuide【全网同名】
基本情况
- 投递岗位:后台开发工程师
- 投递部门:腾讯HR部门
- 招聘类型:暑期实习
- Base地点:深圳
- 时间:2.20
知识点
- Java基础:String、final、SpringBoot、SpringCloud是高频考点。
- 数据库:MySQL存储引擎、InnoDB、join操作是重点。
- Redis:数据结构、缓存问题、布隆过滤器需熟练掌握。
- 网络:TCP可靠性、握手挥手、粘包问题、HTTPS原理是必考内容。
- 算法:快排等经典算法需熟练掌握,避免手写时出现低级错误。
问题记录
这场面试涵盖了Java基础、数据库、网络、Redis等多个技术领域,虽然整体难度不算高,但考察范围非常广泛。
1. Java基础
-
String
- 考察String的不可变性、字符串常量池、StringBuilder和StringBuffer的区别。
-
final关键字
- final修饰类、方法、变量的作用及使用场景。
-
SpringBoot优势
- 自动配置、内嵌服务器、简化依赖管理等。
-
SpringCloud组件
- 常用组件如Eureka、Ribbon、Feign、Hystrix、Zuul等的作用和原理。
2. 数据库
-
MySQL存储引擎
- InnoDB和MyISAM的区别及适用场景。
-
InnoDB优势
- 支持事务、行级锁、外键约束等。
-
left join vs right join
- left join返回左表所有记录和右表匹配记录,right join反之。
3. Redis
-
数据结构
- 字符串、哈希、列表、集合、有序集合等。
-
缓存三件套
- 缓存穿透、缓存雪崩、缓存击穿的解决方案。
-
布隆过滤器
- 用于快速判断元素是否存在于集合中,减少不必要的查询。
4. 网络
-
TCP为什么可靠
- 通过确认机制、重传机制、流量控制、拥塞控制等保证可靠性。
-
三次握手和四次挥手
- 三次握手建立连接,四次挥手断开连接。
-
TCP粘包及解决方法
- 粘包原因:TCP是字节流协议,消息边界不清晰。
- 解决方法:固定长度、分隔符、消息头声明长度。
-
HTTP vs HTTPS
- HTTP是明文传输,HTTPS通过SSL/TLS加密传输。
-
HTTPS原理
- 大概原理是,通过非对称加密交换对称密钥,后续通信使用对称加密。
5. 其他
-
Docker
- 容器化技术,轻量级、可移植、快速部署。
-
快排算法
- 分治法思想,时间复杂度O(nlogn),空间复杂度O(logn)。
- 挺简单的,但是最后快排脑子短路有一个bug没调通…