通过位操作进行数据的复合存储
比如要将日期和数据的ID进行复合存储,可以使用接位或与位移来完成。
long currTime = System.currentTimeMillis();long originId = 500000L;currTime = 0x1398b3f213b;
1 | 1 = 11 | 0 = 10 | 0 = 0
long targetId = originId << 32;targetId = 0x7a12000000000L;
Long targetTime = TimeUnit.MILLISECONDS.toSeconds(currTime);
Long mark = targetTime | targetId;
originId = mark >> 32;currTime = (mark ^ (id << 32)) * 1000L;