首页技术区最新随笔(rss) RSS

史上最清晰的红黑树讲解(下)

     摘要: 本文github地址上一篇文章史上最清晰的红黑树讲解(上)对Java TreeMap的插入以及插入之后的调整过程给出了详述。本文接着以Java TreeMap为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下前文,以方便理解。寻找节点后继对于一棵二叉查找树,给定节点t,其后继(树种比大于t的最小的那个元素)可以通过如下方式找到:t的右子...  阅读全文

2016-05-25 16:48 作者: CarpenterLee【评论:0】【阅读:78】 

史上最清晰的红黑树讲解(上)

     摘要: 本文github地址本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及由此产生的调整过程。总体介绍Java TreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评判可以通过其本身的自然顺序(natural ordering),也可以通过构造时传入的比较器(...  阅读全文

2016-05-18 07:57 作者: CarpenterLee【评论:0】【阅读:795】 

CentoOs安装nginx

     摘要: 本文不涉及太多配置项管理,只是针对小白用户的最快安装手册  阅读全文

2016-05-13 10:55 作者: zuxiong【评论:2】【阅读:841】 

Java PriorityQueue源码剖析

     摘要: Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和开销,将有助于您对该容器建立清晰明了的认识。  阅读全文

2016-05-12 21:22 作者: CarpenterLee【评论:2】【阅读:618】 

为什么你的博客不够火?

     摘要: CNBlog首页博客热度分析 本文github地址 前言 每个博客园的园友或许都会有这种经历:自己辛辛苦苦,认认真真的写了篇博客,然后满心欢喜的发到了博客园首页,当你以为大功告成坐等点击量暴表的时候,却发现自己的博文根本无人问津。那将是何等的痛苦:( 不要再自我怀疑,不要再自怨自艾,博客不火,不一定是博文内容不够严谨深入,也不一定是你能力不足,而可能仅仅是因为你选择了错误的发表时机。 本...  阅读全文

2016-05-11 09:02 作者: CarpenterLee【评论:8】【阅读:686】 

Java ArrayDeque源码剖析

     摘要: ArrayDeque 本文github地址 前言 Java里有一个叫做Stack的类,却没有叫做Queue的类(它是个接口名字)。当需要使用栈时,Java已不推荐使用Stack,而是推荐使用更高效的ArrayDeque;既然Queue只是一个接口,当需要使用队列时也就首选ArrayDeque了(次选是LinkedList)。 总体介绍 要讲栈和队列,首先要讲Deque接口。Deque的含...  阅读全文

2016-05-07 18:30 作者: CarpenterLee【评论:2】【阅读:806】 

MyThrift 0.0.1 发布,轻量级 RPC 服务框架

     摘要: 1)什么是MyThrift?基于以下组件打造的一款轻量级RPC服务框架:thrift(facebook出品)、commons-pool(socket连接池)、自研服务治理框架(zookeeper).2)为什么要写MyThrift?2.1)提出问题:    各种存储越来越多(redis,mysql,hdfs,hbase,mq),    让web开发人员自己访问...  阅读全文

2016-05-05 17:02 作者: paulwong【评论:0】【阅读:873】 

Java LinkedList源码剖析

     摘要: LinkedList 本文github地址 总体介绍 LinkedList同时实现了List接口和Deque接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack)。这样看来,LinkedList简直就是个全能冠军。当你需要使用栈或者队列时,可以考虑使用LinkedList,一方面是因为Java官方已经声明不建议使用Stack类,更遗憾的是...  阅读全文

2016-05-04 08:35 作者: CarpenterLee【评论:3】【阅读:1185】 

Maven项目配置文件不在resources下,如何使用idea引入配置文件

1.选择:File->project structure->libraries

2.左上角选择添加,选择添加java(还提供了添加maven项目),然后选择所需要的目录:

3.idea 会提示选择添加什么类型的文件,我们是单纯的文件,所以选择classes

   

 

2016-04-29 15:42 作者: 管先飞【评论:0】【阅读:1024】 

Java HashSet和HashMap源码剖析

     摘要: 本文从算法和数据结构层面对Java HashSet和HashMap的实现做了剖析,并结合JDK源码逐行讲解,让你对HashSet和HashMap建立清晰而深入的理解。之所以把HashSet和HashMap放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说HashSet里面有一个HashMap(适配器模式)。因此本文将重点分析HashMap。  阅读全文

2016-04-27 21:27 作者: CarpenterLee【评论:0】【阅读:1247】 

基于Hazelcast的分布式自增ID实现

     摘要: 在当前的互联网类产品中,如何高效可用的生成的一个全局自增ID,是一个比较有挑战性的工作。我见过的一般的做法其实就是时间戳再加固定长度的随机 字符串。这个方案其实有两个问题,一个是生成的自增ID的可读性,另外就是随机,并不是真正的唯一,它是一个碰撞概率的。其它方案,如依赖数据的自增 ID,如果多个库,可以通过不同的步长来实现可读的序列。不过,这其实性能上肯定不可能很高。另外,会有单点的问题。所以,果断放弃。在查看了目前比较成 熟的snowfake方案之后,感觉不错。下图是它的算法核心  阅读全文

2016-04-26 09:22 作者: zuxiong【评论:0】【阅读:1133】 

技 术 改 变 世 界

宣传语

网站分类

其他分类

Google站内搜索

 

24小时内最热随笔

统计信息

订阅

Blog客户端API

推荐客户端

博客排行榜[前100人]

友情链接