获取Unsafe
Unsafe类为一单例实现,提供静态方法getUnsafe获取Unsafe实例,只能被由BootstrapClassLoader加载器加载的类所使用。
方式一:反射
// 通过反射得到theUnsafe对应的Field对象
Field field = Unsafe.class.getDeclaredField("theUnsafe");
// 设置该Field为可访问
field.setAccessible(true);
// 通过Field得到该Field对应的具体对象,传入null是因为该Field为static的
Unsafe unsafe = (Unsafe) field.get(null);```
java -Xbootclasspath/a: ${path} // 其中path为调用Unsafe相关方法的类所在jar包路径
方法二: 把要获取Unsafe实例的类所在jar包路径追加到默认的bootstrap路径中
java -Xbootclasspath/a: ${path} // 其中path为调用Unsafe相关方法的类所在jar包路径