摘要: 1.ThreadLocal的使用 ThreadLocal,即线程变量,是一个以ThreadLocal对象为键,任意对象为值的存储结构。这个结构被附带在线程上,也就是说一个线程可以根据ThreadLocal对象查询到绑定到这个线程上的值。它的作用就是为每一个线程都创建一个变量副本,并且线程可以修改自己 阅读全文
posted @ 2019-02-28 09:36 51life 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 如下代码,想要循环删除列表中的元素b,该怎么处理? 方法一:for循环遍历 输出结果: 由结果可知,第二个元素b并未删除,原因是当第一个元素b被删除后,它后面所有的元素都向前移动了一个单位,循环时导致第二个元素b漏掉了(本例中从下标2变为了下标1,而下标1已经遍历过了),可以通过源码来看: 进入 f 阅读全文
posted @ 2019-02-20 15:00 51life 阅读(4336) 评论(0) 推荐(0) 编辑
摘要: 一 B树 1.B树的定义:B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树。 2.B树的特征: 根节点至少有两个子节点 每个中间节点都包含k 阅读全文
posted @ 2019-02-13 09:49 51life 阅读(6511) 评论(0) 推荐(8) 编辑
摘要: 情景:对数组 int[] arr = {7,10,1,9,2,5,8,6,4 ,3}中的数据 从小到大排序。 思路:选择最右侧的元素3作为枢纽元素,然后从左到右,从下标为0的元素开始与枢纽元素比较,小于枢纽元素不做任何处理,继续比较下一个,直至遇到大于枢纽元素的A元素;同时从右向左,从下标为arr. 阅读全文
posted @ 2019-01-29 10:33 51life 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 在插入排序中,我们假设在即将进行排序的元素的左侧所有的元素已经是有序的,所以我们会将该元素与它左侧的元素逐个比较,如果左侧的元素大于该元素,则左侧的元素右移。然后,该元素继续与左侧的下一个元素比较。现在有一个问题:极端情况下,刚开始很小的元素放到了最右侧,那么它左侧所有的元素都要向右移动复制一次,这 阅读全文
posted @ 2019-01-28 15:26 51life 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 情景:对数组 int[] arr = {6,9,5,2,8,7}中的数据 从小到大排序。 思路:在插入排序中,会有一个标记元素,该标记元素左侧的所有元素都是有序的,该元素及其右侧的元素都是无序的。所以在排序中,会将该被标记元素与它左侧的所有元素逐个比较,如果左侧的元素大于等于该被标记元素,则左侧的元 阅读全文
posted @ 2019-01-24 10:23 51life 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 选择排序对冒泡排序进行了改进,将交换次数从O(n2)降低到了O(n),比较次数仍然是O(n2) 情景:对数组 int[] arr = {6,9,5,2,8,7}中的数据 从小到大排序。 思路:在第一趟排序中,从下标为0开始选择出最小的数字,和arr[0]进行交换,此时,最左侧的数字已经是有序状态了。 阅读全文
posted @ 2019-01-23 13:31 51life 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 情景:对数组 int[] arr = {6,9,5,2,8,7}中的数据 从小到大排序 思路:从下标为0开始比较,如果arr[0] > arr[1],则交换;否则,不做任何处理。然后同理比较arr[1]和arr[2],,,arr[maxSize-2]和arr[maxSize-1]。经过一轮比较,最大 阅读全文
posted @ 2019-01-22 17:05 51life 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 1.zookeeper是什么? zookeeper是应用于集群或者节点组中的一种分布式协调服务,管理集群中的各个节点,并通过稳健的同步技术维护共享数据。 2.zookeeper基本概念介绍 2.1 zookeeper中的角色 (a)leader:负责进行投票的发起和决议,更新系统状态。 (b)fol 阅读全文
posted @ 2019-01-15 15:53 51life 阅读(1490) 评论(0) 推荐(0) 编辑
摘要: redis有三种集群方式:主从复制,哨兵模式和集群。 1.主从复制 主从复制原理: 从服务器连接主服务器,发送SYNC命令; 主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令; 主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送 阅读全文
posted @ 2019-01-08 09:23 51life 阅读(111484) 评论(5) 推荐(17) 编辑