3 回答

TA贡献1829条经验 获得超9个赞
通过在某些代码搜索引擎中运行搜索,我得到以下示例:
Java Object Notation-用它来引用Javadoc进行更有效的数组处理
用于访问{@link Unsafe}对象的简单类。{@link Unsafe} *是必需的,以允许对阵列进行有效的CAS操作。请注意,{@ link java.util.concurrent.atomic}中的版本(例如{@link java.util.concurrent.atomic.AtomicLongArray})需要额外的内存排序保证,这些算法通常不需要这些保证,而且价格昂贵在大多数处理器上。
SoyLatte -Java 6 for OSX Javadoc摘录
/ **静态字段的基于sun.misc.Unsafe的FieldAccessors的基类。从反射代码的角度来看,观察到只有九种类型的字段:八种基本类型和对象。使用类Unsafe代替生成的字节码可以节省动态生成的FieldAccessors的内存和加载时间。* /
SpikeSource
/ *通过导线发送的FinalFields ..如何在接收端解组和重新创建对象?我们不想调用构造函数,因为它将为最终字段建立值。我们必须完全像发送方一样重新创建最终字段。sun.misc.Unsafe为我们做到了。* /
还有许多其他示例,只需点击上面的链接即可...

TA贡献1852条经验 获得超7个赞
有趣的是,我什至从未听说过这堂课(这确实是一件好事)。
让我们想到的一件事是使用Unsafe#setMemory将包含敏感信息(密码,键等)的缓冲区归零。您甚至可以对“不可变”对象的字段执行此操作(然后再次,我认为普通的老式反射也可以在此处实现此目的)。我不是安全专家,因此请带一点盐。
添加回答
举报