SparkSQL10_Unsafe相关_01_sun.misc.Unsafe
来源:互联网 发布:80端口 屏蔽 通知 编辑:程序博客网 时间:2024/05/16 06:04
1. Unsafe.copyMemory
1.1 如下代码实现字节数组的拷贝
import sun.misc.Unsafe;import java.lang.reflect.Field;public class UnsafeTest { private static final Unsafe _UNSAFE; private static final int BYTE_ARRAY_OFFSET; private static final int INT_ARRAY_OFFSET; static { sun.misc.Unsafe unsafe; try { //通过反射获得Unsafe类的theUnsafe成员变量 Field unsafeField = Unsafe.class.getDeclaredField("theUnsafe"); //设置为可访问 unsafeField.setAccessible(true); //theUnsafe是静态变量,可以通过null对象获取其值,获得的值就是Unsafe成员变量 unsafe = (sun.misc.Unsafe) unsafeField.get(null); } catch (Throwable cause) { cause.printStackTrace(); unsafe = null; } _UNSAFE = unsafe; BYTE_ARRAY_OFFSET = _UNSAFE.arrayBaseOffset(byte[].class); INT_ARRAY_OFFSET = _UNSAFE.arrayBaseOffset(int[].class); } public static void main(String[] args) { System.out.println("======================BYTE ARRAY======================="); byte[] src = new byte[]{1, 2, 3, 4, 5, 6}; byte[] dest = new byte[src.length]; _UNSAFE.copyMemory(src, BYTE_ARRAY_OFFSET, dest, BYTE_ARRAY_OFFSET, src.length); for (byte b : dest) { System.out.println(b); } System.out.println("=======================INT ARRAY======================="); int[] isrc = new int[]{11,12,13,14,15,16}; int[] idest = new int[isrc.length]; _UNSAFE.copyMemory(isrc, INT_ARRAY_OFFSET, idest, INT_ARRAY_OFFSET,isrc.length * 4); //最后一个参数表示复制内存的长度 for (int ii : idest) { System.out.println(ii); } }}
0 0
- SparkSQL10_Unsafe相关_01_sun.misc.Unsafe
- sun.misc.Unsafe
- sun.misc.Unsafe
- sun.misc.Unsafe
- sun.misc.Unsafe源码
- sun.misc.Unsafe
- sun.misc.Unsafe源代码
- 认识 sun.misc.Unsafe
- Java sun.misc.Unsafe
- 使用sun.misc.Unsafe
- sun.misc.Unsafe
- sun.misc.Unsafe实例介绍
- Java中的sun.misc.Unsafe
- sun.misc.Unsafe's APIs
- sun.misc.Unsafe源码解析
- CAS与sun.misc.Unsafe
- 简单了解sun.misc.Unsafe
- sun.misc.Unsafe的理解
- HDOJ 1001Sum Problem
- Enumeration遍历Vector集合
- 程序员书单_求职面试
- 协议[I2C]_I2C子系统之总结
- 在非Main Activity中完全退出应用
- SparkSQL10_Unsafe相关_01_sun.misc.Unsafe
- Socket 介绍
- linux0.99网络模块-数据链路层(发送)
- sicily 1050. Numbers & Letters
- String 总结
- 航天母舰
- 静态方法:无法在静态上下文中引用非静态
- 仿QQ侧滑删除,Listview上下滑动,Listview的iteam的点击事件等bug的解决
- 程序员书单_java专项进阶篇