Java中的强制内存分配

Java中的强制内存分配,java,memory-management,jvm,bytearray,Java,Memory Management,Jvm,Bytearray,我知道内存分配在中不是明确需要的,因为内存分配在幕后处理分配。即使我不需要分配内存,为了测试一个贪心内存的应用程序,我如何能够保存某些字节数的对象呢 当前的解决方案是实例化基元“byte”的数组。如果我想保存5MB的对象,我会创建一个字节数组 byte[] b = new byte[5000000]; 如果只是为了创建/发布一些单元测试的已知大小的对象,那么有没有更好的方法来显式分配Java JVM中的内存呢?没有更好的方法了。”“new”是显式占用内存的唯一方法(例如,通过调用方法分配堆栈除

我知道内存分配在中不是明确需要的,因为内存分配在幕后处理分配。即使我不需要分配内存,为了测试一个贪心内存的应用程序,我如何能够保存某些字节数的对象呢

当前的解决方案是实例化基元“byte”的数组。如果我想保存5MB的对象,我会创建一个字节数组

byte[] b = new byte[5000000];

如果只是为了创建/发布一些单元测试的已知大小的对象,那么有没有更好的方法来显式分配Java JVM中的内存呢?

没有更好的方法了。”“new”是显式占用内存的唯一方法(例如,通过调用方法分配堆栈除外)


这是最容易控制的方法。由于对象开销的原因,它不会精确分配5000000字节,但它非常接近

我不明白这个问题。。。新的不好?是JNI的东西吗?如果是这样,那么分配DirectByteBuffer肯定会分配您的内存。@Ed H.,这不适用于JNI。错过了“新”编辑的帖子。什么能让事情变得“更好”?或者,你现在做的有什么不好?一下子,我想不出更好的方法了。创建一个对象似乎有点黑客味,我希望能得到更直接的控制。诚然,在C语言中,我对此没有问题,但应用程序是java的,这是一个我需要编写一些代码块的极端情况,而不是一个巨大的架构更改。
byte b = new byte[MEM_SIZE];