后端岗位面试题更新 2026-08-05

Redis的String和Java的String有什么不同?Redis的简单动态字符串(SDS)的动态体现在哪里,有什么优劣?

菜鸟集团后端开发物流/供应链技术原理方案权衡JavaRedis

考察说明

考察Redis SDS底层设计与主流语言字符串实现的差异、动态扩缩容机制及权衡

回答思路

  1. 说明Redis的String基于C语言SDS实现,而Java的String不可变、基于UTF-16字节数组
  2. 阐述SDS的动态体现在内存预分配、惰性空间释放和记录长度的结构设计
  3. 分析SDS与C字符串相比的优势(O(1)长度、二进制安全、杜绝缓冲区溢出)与劣势(额外内存开销、扩容时的拷贝成本)
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。