摘要:
之前整理的链表的基础知识部分,相信很多刷算法或者出去面试的同学都会发现。链表作为一个经常使用的数据结构,和他相关的考题真的很常见。今天我们来研究一下几种常见的链表相关的算法,我先把要分享的算法写在前面,可能比较入门,如果你一看题目就知道怎么做了,那恭喜你,你的算法已经入门了。 本篇文章涉及的链表算法 阅读全文
摘要:
之前我们说单独讲了数组这种数据结构,从底层的存储结构上来说,与数组对应的就是链表这种数据结构了。因为这两者都是非常基础、非常常用的数据结构。所以我想趁着刚总结完数组之后开始总结链表这种数据结构。 第一斧:啥是链表? 维基百科上对链表的描述是这样的: 链表(Linked list)是一种常见的基础数据 阅读全文
摘要:
之前我们说过了冒泡排序,现在我们再来看一个经常和冒泡排序拿出来比较的排序算法插入排序,为什么要学习数据模型和算法,为什么有现成的轮子还要自己再动手去写等等,这些问题的原因我都写在这里面了,欢迎大家批评斧正。 冒泡排序 插入排序 老规矩,学习算法三板斧。 第一斧:学习其原理思想 插入排序我们可以将整个 阅读全文
摘要:
说起数组排序,我们大家都经常会用到Arrays.sort()方法或者是直接使用其他封装好的轮子的排序方法。这些API虽然大家都会用,偶尔静下心来扪心自问,我真的知道数组排序是怎么玩儿的嘛?还是我只是会用API而已?说到这里,很多同学就会说:“不要重复造轮子,有现成你不用非得自己写是怎么回事儿,你写的 阅读全文
摘要:
说到数组这种数据结构,我相信绝大多数的开发工程师都在实际工作中用到过或看到过。甚至大部分工程师都觉得这个玩意儿有什么好说的,太基础、太简单了。我想说的是,尽管数组的确是非常的基础,但是他并不简单。 1.到底才什么是数组? 到底什么才是数组,我相信很多人心目中都有不同的认识。但是我还是想引用一段专业的 阅读全文
摘要:
一、什么样的树才是“合格”的红黑树? 树的根节点都是黑色的 每个叶子节点都是黑色的空节点 任何相邻的节点都不能为连续的红色节点(比如父节点是红色的,他的左子节点或者右子节点都不能为红色) 每个节点,从该节点到达其可达的叶子节点路径上都包含相同数目的黑色节点 二、什么是左旋和右旋啊? 左旋全称其实是叫 阅读全文
摘要:
数据结构 Redis中的string数据类型的数据结构类似Java中的ArrayList,是一个字符数组。 扩容机制 当字符串大小 1MB的时候,每次扩容都会扩容一倍。当字符串大小 { T capacity; // 数组的容量 T len; // 数组的长度 byte flags; // 数组的特殊 阅读全文
摘要:
通过GitHub获取Eureka源码 进入git bash命令行,自己找个目录,用来存放eureka源码,然后在目录里面,执行git clone https://github.com/Netflix/eureka.git,就可以了,这个是需要点时间的,稍微有点慢,你等一会儿好了。 获取eureka项 阅读全文
摘要:
一、ThreadLocal是什么 从名称来看ThreadLocal的直接翻译就是线程本地,可以粗糙的理解成当前现成的本地数据,是不和其他线程共享的数据。但是这么理解是不是太片面呢,这里我们看一下JDK源码对ThreadLocal的注释是什么吧。 1. JDK源码说明 2. 个人理解 根据Jdk源码注 阅读全文
摘要:
今天和郑晓龙沟通Redis使用的过程中,吐槽现在隆众平台很多地方出现了数据更新后,Redis和数据库中的数据不一致的问题。 然后就诱发了这个问题的讨论,我的观点是对数据进行修改后,也要同步更新Redis中的数据,即重新set一个value进去。晓龙的意见是 数据更新后,对redis中对应的key执行 阅读全文