Java 使用不安全的方法复制整个C结构?

Java 使用不安全的方法复制整个C结构?,java,Java,我一直在探索Java不安全库,到目前为止,我可以看到如何从序列化字节流复制结构的各个字段(例如通过使用getInt()等),但是如果我序列化了以下(打包的)结构: struct foo { int a, b, c; short d, e, f; }; 我可以从内存地址(在本例中为NettyByteBufinstance.)使用一个副本来执行此操作吗?如果需要的话,我也可以使用JNR,尽管我还不太清楚如何连接两者。不安全的实际上并不打算被JDK之外的代码使用。@LouisWasserma

我一直在探索Java不安全库,到目前为止,我可以看到如何从序列化字节流复制结构的各个字段(例如通过使用
getInt()
等),但是如果我序列化了以下(打包的)结构:

struct foo
{
  int a, b, c;
  short d, e, f;
};

我可以从内存地址(在本例中为Netty
ByteBuf
instance.)使用一个副本来执行此操作吗?如果需要的话,我也可以使用JNR,尽管我还不太清楚如何连接两者。

不安全的
实际上并不打算被JDK之外的代码使用。@LouisWasserman,我知道注意事项,但我想走这条路……特别是,假设Java如何布局一个类的内存结构是非常危险的,坦率地说是不可预测的。如果必须,您可以将内容加载到
ByteBuffer
中,并通过对其执行索引
getInt
getShort
操作来实现类的getter,但坦率地说,这极不可能支付其自身的维护成本。这样做没有意义,
ByteBuf
实现相同的接口。我查看这些黑暗角落的唯一原因是,我想看看是否有可能将此结构的解码速度推到比ByteBuf快,到目前为止,使用不安全的字段逐字段进行解码速度更快,但我想看看是否可以推到这一步之外……您是否有硬基准测试结果表明这是代码中的瓶颈?