前言
近几年针对 Redis 面试时会涉及常见数据结构的底层设计,其中就有这么一道比较有意思的面试题:“Redis 的有序集合底层为什么要用跳表,而不用平衡树、红黑树或者 B+树?”。
本文就以这道大厂常问的面试题为切入点,带大家详细了解一下跳表这个数据结构。
本文整体脉络如下图所示,笔者会从有序集合的基本使用到跳表的源码分析和实现,让你会对 Redis 的有序集合底层实现的跳表有着更深刻的理解和掌握。
近几年针对 Redis 面试时会涉及常见数据结构的底层设计,其中就有这么一道比较有意思的面试题:“Redis 的有序集合底层为什么要用跳表,而不用平衡树、红黑树或者 B+树?”。
本文就以这道大厂常问的面试题为切入点,带大家详细了解一下跳表这个数据结构。
本文整体脉络如下图所示,笔者会从有序集合的基本使用到跳表的源码分析和实现,让你会对 Redis 的有序集合底层实现的跳表有着更深刻的理解和掌握。
开发岗中总是会考很多计算机网络的知识点,但如果让面试官只靠一道题,便涵盖最多的计网知识点,那可能就是 网页浏览的全过程 了。本篇文章将带大家从头到尾过一遍这道被考烂的面试题,必会!!!
总的来说,网络通信模型可以用下图来表示,也就是大家只要熟记网络结构五层模型,按照这个体系,很多知识点都能顺出来了。访问网页的过程也是如此。
数据冷热分离是指根据数据的访问频率和业务重要性,将数据分为冷数据和热数据,冷数据一般存储在存储在低成本、低性能的介质中,热数据高性能存储介质中。
热数据是指经常被访问和修改且需要快速访问的数据,冷数据是指不经常访问,对当前项目价值较低,但需要长期保存的数据。
冷热数据到底如何区分呢?有两个常见的区分方法:
查询偏移量过大的场景我们称为深度分页,这会导致查询性能较低,例如:
# MySQL 在无法利用索引的情况下跳过1000000条记录后,再获取10条记录
SELECT * FROM t_order ORDER BY id LIMIT 1000000, 10
推荐语:作者用了很多生动的例子和故事展示了自己在美团的成长和感悟,看了之后受益颇多!
内容概览:
本文的作者提出了以下十条建议,希望能对其他职场人有所启发和帮助:
- 结构化思考与表达,提高个人影响力
- 忘掉职级,该怼就怼,推动事情往前走
- 用好平台资源,结识优秀的人,学习通识课
- 一切都是争取来的,不要等待机会,要主动寻求
- 关注商业,升维到老板思维,看清趋势,及时止损
- 培养数据思维,利用数据了解世界,指导决策
- 做一个好"销售",无论是自己还是产品,都要学会展示和说服
- 少加班多运动,保持身心健康,提高工作效率
- 有随时可以离开的底气,不要被职场所困,借假修真,提升自己
- 只是一份工作,不要过分纠结,相信自己,走出去看看
推荐语:这是《Java 面试指北》练级攻略篇中的一篇文章,分享了我对于如何快速学习一门新技术的看法。
贪心的本质是选择每一阶段的局部最优,从而达到全局最优。
704.二分查找:https://leetcode.cn/problems/binary-search/
80.删除有序数组中的重复项 II:https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii
JDK 21 于 2023 年 9 月 19 日 发布,这是一个非常重要的版本,里程碑式。
JDK21 是 LTS(长期支持版),至此为止,目前有 JDK8、JDK11、JDK17 和 JDK21 这四个长期支持版了。
JDK 21 共有 15 个新特性,这篇文章会挑选其中较为重要的一些新特性进行详细介绍: