使用uuid产生字符串,然后用hash值取余100,
结果小于50和大于50的比例并不是1:1,而是3:1
原因是因为,hash值产生了负数,结果区间是-100~100之间;
究其原因:是因为有些uuid的hash值超过了int的最大取值范围,导致数据溢出,产生了负数:int型的值取值范围为Integer.MIN_VALUE(-2147483648)~Integer.MAX_VALUE(2147483647)
使用uuid产生字符串,然后用hash值取余100,
结果小于50和大于50的比例并不是1:1,而是3:1
原因是因为,hash值产生了负数,结果区间是-100~100之间;
究其原因:是因为有些uuid的hash值超过了int的最大取值范围,导致数据溢出,产生了负数:int型的值取值范围为Integer.MIN_VALUE(-2147483648)~Integer.MAX_VALUE(2147483647)