使用场景:有些情况下,比如游戏服务器,有非常频繁的 坐标传递,多到什么样呢?一次GC中,大部分垃圾 竟然都是 new出来的仅仅 包含X和Y 坐标值 的对象;
public static long combineInt2Long(int high, int low) {
return ((long) low & 0xFFFFFFFFl) | (((long) high << 32) & 0xFFFFFFFF00000000l);
}
public static int getHighLong(long val) {
return (int) ((0xFFFFFFFF00000000l & val) >> 32);
}
public static int getLowLong(long val) {
return (int) (0xFFFFFFFFl & val);
}
public static int[] getArrayByLong(long val) {
return new int[]{(int) ((0xFFFFFFFF00000000l & val) >> 32), (int) (0xFFFFFFFFl & val)};
}