通过反射实例化 sun.misc.Unsafe
public static Unsafe getUnsafe() {
try {
Field unsafe = Unsafe.class.getDeclaredField("theUnsafe");
unsafe.setAccessible(true);
return (Unsafe) unsafe.get(null);
} catch (IllegalAccessException e) {
// Handle
} catch (IllegalArgumentException e) {
// Handle
} catch (NoSuchFieldException e) {
// Handle
} catch (SecurityException e) {
// Handle
}
}
sun.misc.Unsafe
有一个 Private 构造函数,静态 getUnsafe()
方法通过检查类加载器来保护,以确保代码是用主类加载器加载的。因此,加载实例的一种方法是使用反射来获取静态字段。