问题描述
代码如下,多谢指教,谢谢! private static final Unsafe unsafe = Unsafe.getUnsafe(); private Class defineClassImpl(byte[] code, boolean mustBeBootstrap) { ClassLoader loader = null; if (! mustBeBootstrap) { loader = new ClassLoader(null) {}; } Class cl = unsafe.defineClass(className, code, 0, code.length, loader, null); unsafe.ensureClassInitialized(cl); return cl; } 问题补充:主要问题是 Unsafe的作用;返回的class的ClassLoader是什么;其他类如何引用这个类?(不在一个类加载器怎样引用呢)
解决方案
Unsafe是一个SDK内部实现特殊类,一般来说进行进行相对底层的操作,java.unit.concurrent.atomic包里的原子类很多都是使用了该类进行实现。正常情况下是无法引用Unsafe类的,参考:http://www.docjar.com/docs/api/sun/misc/Unsafe.html
解决方案二:
private static final Unsafe unsafe = Unsafe.getUnsafe();这个应该是一个单例这段代码应该是初始化一个对象