算法
nbdclw
这个作者很懒,什么都没留下…
展开
-
HashMap之tableSizeFor方法算法详解
最近在看HashMap的源码的时候,发现有参构造方法会调用tableSizeFor方法来确认容量的大小,tableSizeFor方法里面的算法挺巧妙的,所以专门研究了下,下面跟大家分享下我对tableSizeFor方法的一个理解。我们先看看方法源码:/** * Returns a power of two size for the given target capacity. */static final int tableSizeFor(int cap) { int n = cap -原创 2020-09-24 15:30:55 · 776 阅读 · 2 评论 -
教你快速理解雪花算法的原理和java实现
一、简介雪花算法是Twitter开源的分布式ID生成算法。生成的ID是一个64位的Long类型的数字,是一个全局唯一的ID;当然这64位的全局唯一ID是由时间戳、机器ID、序列号组成的,如果涉及到不同的机房,可以改进下由由时间戳、机房ID、机器ID、序列号组成。具体是如何分配的,如下图所示:组成部分详解1、最高位是符号位,始终为0,因为需要正数;2、时间戳第二部分是41位的时间戳,自增的时间戳(毫秒级),最大可以存(2^41 - 1)的毫秒数,差不多可以存69年3、机房ID第三部分是5位的原创 2020-09-22 19:11:24 · 468 阅读 · 0 评论