摘要:转自  Java负整数的左移、右移、无符号右移   Java负整数的左移、右移、无符号右移。正数的位移没有涉及到符号,而且正数的原码、反码、补码都是一样的,所以相对简单,但是对于负整数的位移,往往容易混淆。   Java的<<  > 阅读全文
posted @ 2019-09-12 17:51 星朝 阅读 (4) 评论 (0) 编辑
摘要:1、 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数。 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数。 左移的规则只记住一点:丢弃最高位,0补最低位 如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数 阅读全文
posted @ 2019-09-12 17:45 星朝 阅读 (6) 评论 (0) 编辑
摘要:Java的位运算(bitwise operators)直接对整数类型的位进行操作,这些整数类型包括long、int、short、char和 byte,位运算符具体如下表: 运算符 说明 <<  左移位,在低位处补0 >>  右移位,若为正数则高位 阅读全文
posted @ 2019-09-12 17:39 星朝 阅读 (3) 评论 (0) 编辑
摘要:回去又复习了一遍计算机里面二进制整数的表示方式,主要分为3类:原码、反码和补码。 当然,我还是要在开头说明一下,计算机里都是以补码的形式储存数据。 原码 这种方式最好理解,将我十进制的“逢十进一”换成二进制的“逢二进一”就行了。 具体如何做呢?还是介绍一下十进制和二进制的转换方式吧。 二进制转换十进 阅读全文
posted @ 2019-09-12 17:16 星朝 阅读 (11) 评论 (0) 编辑
摘要:  一、位运算 (1)按 位 与 & 如果两个相应的二进制形式的对应的位数都为1,则结果为1,记为同1为1,否则为0。首先我们看一下对正数的运算          分别看一下正数和负数的具体运算步骤     &n 阅读全文
posted @ 2019-09-12 17:06 星朝 阅读 (3) 评论 (0) 编辑
摘要:1.^(亦或运算) ,针对二进制,相同的为0,不同的为1public static void main(String[] args) { System.out.println("2^3运算的结果是 :"+(2^3)); //打印的结果是: 2^3运算的结果是 :1 }2 =======>001 阅读全文
posted @ 2019-09-12 17:05 星朝 阅读 (5) 评论 (0) 编辑
摘要:概述 分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。 有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。 而twitter的snowflake解决了这种需 阅读全文
posted @ 2019-09-12 16:43 星朝 阅读 (6) 评论 (0) 编辑
摘要:详解Twitter开源分布式自增ID算法snowflake,附演算验证过程 2017年01月22日 14:44:40 url: http://blog.csdn.net/li396864285/article/details/54668031 1.snowflake简介   &n 阅读全文
posted @ 2019-09-12 16:35 星朝 阅读 (4) 评论 (0) 编辑
摘要:1、Snowflake简介        互联网快速发展的今天,分布式应用系统已经见怪不怪,在分布式系统中,我们需要各种各样的ID,既然是ID那么必然是要保证全局唯一,除此之外,不同当业务还需要不同的特性,比如像并发巨大 阅读全文
posted @ 2019-09-12 16:33 星朝 阅读 (4) 评论 (0) 编辑
摘要:1.写唯一ID生成器的原由 在阅读工程源码的时候,发现有一个工具职责生成一个消息ID,方便进行全链路的查询,实现方式特别简单,核心源码不过两行,根据时间戳以及随机数生成一个ID,这种算法ID在分布式系统中重复的风险就很明显了。本来以为只是日志打印功能,根据于此在不同系统调用间关联业务日志而已,不过后 阅读全文
posted @ 2019-09-12 15:47 星朝 阅读 (7) 评论 (0) 编辑