有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中带字节缓冲接口的伙伴内存分配器

我想通过我编写的buddy memory allocator系统来管理一块内存。我可以使用unsafe来分配一块内存,并使用我的算法来管理它。我需要为这些块提供字节缓冲接口,以便JavaNIO可以将它们用于网络代码。我不知道如果不在不安全的区块上实际实现ByteBuffer接口的每一个功能,我怎么能做到这一点。这似乎有点过头了

我能想到的一个选项是,使用反射来获取字节缓冲区对象,改变它的私有容量和内存地址字段,并将其标记为直接,这样我就可以直接利用现有的实现。不知怎么的,这似乎行不通

我还想过使用一个大的直接字节缓冲,然后将其中的块表示为位置和容量字段发生变化的切片。这似乎也行不通,因为倒带之类的操作只会将位置设置回零

有更好的办法吗?也许我只需要实现整个接口

实现ByteBuffer接口的一般方法是什么


共 (1) 个答案

  1. # 1 楼答案

    对于任何好奇的人来说,我最终使用了一个直接字节缓冲区来获取初始内存块。为了表示其中较小的块,我复制了它,并使用反射来更改容量和地址字段。这样,我就可以使用现有的直接字节缓冲区实现