ByteBuffer.allocateDirect(someSize)
вернёт вам буффер в нативной памяти, но писать в буфер и читать из него вы можете только примитивы. Для большинства задач, производительность которых может ограничивать сборщик мусора, этого вполне достаточно. В тех случаях, когда нужно что-то большее костылят такое или такое. Беда с этими решениями, что разработчики JVM им не очень рады и постоянно закручивают гайки. Foreign-Memory Access API должен облегчить разработку таких решений. Например?
Но она же не полностью компилируется
Скорость
Если можете покажите что вы делаете в бэкенде на Java