垃圾收集语言是否可以直接访问内存?

Is it possible for garbage collected languages to have direct memory acccess?

垃圾收集语言是否可以直接访问内存?

比如我想展示这样的东西

void crash(){
  for(int i=0; i<1000000; i++){malloc(42)};
}

在垃圾收集语言中不会产生任何问题,但我不确定如何展示它。

简而言之:是的。


我将以java为例。 很长一段时间以来,您可以使用 sun.misc.Unsafe 访问堆外内存,尽管这是不受欢迎的,并且伴随着可怕的警告,它会在某个时候消失。

一种更简单的方法是使用 DirectByteBuffer,它使用堆外内存。

Java 正在继续采用新的、更受认可的堆外内存访问方式,JEP-370 (https://openjdk.java.net/jeps/370) and JEP-383 (https://openjdk.java.net/jeps/383)。