自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 面试常问的LRU缓存模式,即LRUCache

定义就不复制粘贴了。这道题目之所以有区分度,是因为考察了面试者对数据结构的应用,而不是什么计算机底层的“缓存”知识。我们的任务,就是在有限的空间中存储数据,如果“进来”的数据太多以至于存不下,那么就删掉最不常被访问的数据。所以,需要记录数据本身,以及被访问的顺序。如果这么简单的话,实现的方法很多。但问题的关键在于:高速缓存,需要在固定的空间内,满足增删改查O(1)。熟悉数据结构的小伙伴都知道...

2020-04-30 23:54:47 277

原创 Double-Checked Locking(DCL) 单例模式(双重校验锁)

package xiaomi;public class DoubleCheckedLocking { /* DCL单例模式,在懒汉式的套路上加入并发控制,保证在多线程环境下,对外仅存在一个对象。 不加并发控制,在多线程环境下可能出现冲突。例如,B线程从内存中读取的时候,A线程还没有完成写入 单例模式的套路: 1. 构造器私有化 2. 提供私有的...

2020-04-09 17:44:58 279

原创 计算机中的减法——原码,反码和补码

计算机中的减法首先,介绍根据位运算衍生出的三个概念:原码:带符号位的,二进制表示的数值反码:正数的反码是原码,负数的反码是除了符号位之外其余位取反补码:正数的补码是原码,负数的补码是反码+1(补码+1是为了在二进制计算中消除-0,因此负数的表示要加1。具体参见相关书籍)不严谨的说,计算机处理器没有加法引擎,减法是通过加法实现的。在计算机中,两个数的减法是:第一个数和第二个数的...

2020-03-11 22:28:31 3556 7

原创 关于堆(Stack)和栈(Heap)

堆和栈的概念,在数据结构、C/C++、Java中,是完全不同的。必须明确讨论的范围,才能给出具体的答案。数据结构中的堆和栈——以下内容整理自《大话数据结构》堆堆的来源简单选择排序中,并没有做到把每次比较的结果保存下来,因此存在一定的浪费。1964年,Floyd和Williams共同发明了堆排序(Heap Sort)算法。该算法是对简单选择排序的一种改进。通过堆排序,可以避免浪费每次比...

2020-03-10 18:50:38 223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除