随笔-20  评论-2  文章-0 
  置顶随笔
摘要: 1.Stream 流的介绍 1.1 java8 stream介绍 java8新增了stream流的特性,能够让用户以函数式的方式、更为简单的操纵集合等数据结构,并实现了用户无感知的并行计算。 1.2 从零开始实现一个stream流 相信很多人在使用过java8的streamAPI接口之后,都会对其实阅读全文
posted @ 2019-03-14 22:12 小熊餐馆 阅读(642) 评论(0) 编辑
  2019年4月18日
摘要: 1.分布式锁介绍 在计算机系统中,锁作为一种控制并发的机制无处不在。 单机环境下,操作系统能够在进程或线程之间通过本地的锁来控制并发程序的行为。而在如今的大型复杂系统中,通常采用的是分布式架构提供服务。 分布式环境下,基于本地单机的锁无法控制分布式系统中分开部署客户端的并发行为,此时分布式锁就应运而阅读全文
posted @ 2019-04-18 22:06 小熊餐馆 阅读(469) 评论(0) 编辑
  2019年3月14日
摘要: 1.Stream 流的介绍 1.1 java8 stream介绍 java8新增了stream流的特性,能够让用户以函数式的方式、更为简单的操纵集合等数据结构,并实现了用户无感知的并行计算。 1.2 从零开始实现一个stream流 相信很多人在使用过java8的streamAPI接口之后,都会对其实阅读全文
posted @ 2019-03-14 22:12 小熊餐馆 阅读(642) 评论(0) 编辑
  2019年2月28日
摘要: 1.优先级队列介绍 1.1 优先级队列 有时在调度任务时,我们会想要先处理优先级更高的任务。例如,对于同一个柜台,在决定队列中下一个服务的用户时,总是倾向于优先服务VIP用户,而让普通用户等待,即使普通的用户是先加入队列的。 优先级队列和普通的先进先出FIFO的队列类似,最大的不同在于,优先级队列中阅读全文
posted @ 2019-02-28 22:40 小熊餐馆 阅读(203) 评论(0) 编辑
  2019年2月13日
摘要: 1.AVL树介绍 前面我们已经介绍了二叉搜索树。普通的二叉搜索树在插入、删除数据时可能使得全树的数据分布不平衡,退化,导致二叉搜索树最关键的查询效率急剧降低。这也引出了平衡二叉搜索树的概念,平衡二叉搜索树在此前的基础上,通过一系列的等价变换使二叉搜索树得以始终处于"平衡"的状态,拥有稳定且高效的查询阅读全文
posted @ 2019-02-13 20:15 小熊餐馆 阅读(171) 评论(0) 编辑
  2019年1月24日
摘要: 1.二叉搜索树介绍 前面我们已经介绍过了向量和链表。有序向量可以以二分查找的方式高效的查找特定元素,而缺点是插入删除的效率较低(需要整体移动内部元素);链表的优点在于插入,删除元素时效率较高,但由于不支持随机访问,特定元素的查找效率为线性复杂度O(1),效率较低。 向量和链表的优缺点是互补的,那么有阅读全文
posted @ 2019-01-24 22:40 小熊餐馆 阅读(328) 评论(0) 编辑
  2019年1月3日
摘要: 1.哈希表介绍 前面我们已经介绍了许多类型的数据结构。在想要查询容器内特定元素时,有序向量使得我们能使用二分查找法进行精确的查询((O(logN)对数复杂度,很高效)。 可人类总是不知满足,依然在寻求一种更高效的特定元素查询的数据结构,哈希表/散列表(hash table)就应运而生啦。哈希表在特定阅读全文
posted @ 2019-01-03 21:50 小熊餐馆 阅读(274) 评论(0) 编辑
  2018年12月19日
摘要: 1.双端队列介绍 在介绍双端队列之前,我们需要先介绍队列的概念。和栈相对应,在许多算法设计中,需要一种"先进先出(First Input First Output)"的数据结构,因而一种被称为"队列(Queue)"的数据结构被抽象了出来(因为现实中的队列,就是先进先出的)。 队列是一种线性表,将线性阅读全文
posted @ 2018-12-19 22:09 小熊餐馆 阅读(394) 评论(0) 编辑
  2018年12月6日
摘要: 1.栈的介绍 在许多算法设计中都需要一种"先进后出(First Input Last Output)"的数据结构,因而一种被称为"栈"的数据结构被抽象了出来。 栈的结构类似一个罐头:只有一个开口;先被放进去的东西沉在底下,后放进去的东西被放在顶部;想拿东西必须按照从上到下的顺序进行操作。 示意图来自阅读全文
posted @ 2018-12-06 21:59 小熊餐馆 阅读(232) 评论(0) 编辑
  2018年12月2日
摘要: 1.链表介绍 前面我们已经介绍了向量,向量是基于数组进行数据存储的线性表。今天,要介绍的是线性表的另一种实现方式 链表。 链表和向量都是线性表,从使用者的角度上依然被视为一个线性的列表结构。但是,链表内部存储数据的方式却和向量大不相同:链表的核心是节点。节点存储"数据"的同时还维护着"关联节点的引用阅读全文
posted @ 2018-12-02 20:10 小熊餐馆 阅读(248) 评论(0) 编辑
  2018年11月23日
摘要: 1.向量介绍 计算机程序主要运行在内存中,而内存在逻辑上可以被看做是连续的地址。为了充分利用这一特性,在主流的编程语言中都存在一种底层的被称为数组(Array)的数据结构与之对应。在使用数组时需要事先声明固定的大小以便程序在运行时为其开辟内存空间;数组通过下标值计算出地址偏移量来对内部元素进行访问。阅读全文
posted @ 2018-11-23 21:54 小熊餐馆 阅读(304) 评论(1) 编辑