Unsafe使用技巧之数组操作

 

1.unsafe = Util.getUnsafe();//初始化unsafe

2.final int base = unsafe.arrayBaseOffset(long[].class);//获取数组头位置

3.final int scale = unsafe.(long[].class);//获取单个数组大小

4.valueOffset = base + (scale * N);//获取第几个元素的偏移量

这样你就可以随意的操作数组里元素

 private final long[] arrayLong = new long[15];//实例一个数组

 unsafe.compareAndSwapLong(arrayLong , valueOffset, expectedValue, newValue);//修改arrayLong数组偏移量为valueOffset元素的值

posted @ 2017-07-25 14:53  蒋贤军  阅读(304)  评论(0编辑  收藏  举报