QuoteIn Java, when working with LWJGL bindings, it's usually safer and more convenient to use the calloc methods provided by the LWJGL data structures. This method allocates and initializes the buffer for you, which can help avoid issues with uninitialized fields or incorrectly-sized buffers.
In contrast, BufferUtils.createByteBuffer just allocates a block of memory and gives you a ByteBuffer pointing to it. When you pass this to new XrActionSuggestedBinding.Buffer, it creates a view of this memory as XrActionSuggestedBinding structures, but it doesn't initialize them. This can lead to issues if the memory isn't correctly initialized.
By using XrActionSuggestedBinding.calloc(1), you're asking LWJGL to allocate memory for one XrActionSuggestedBinding and initialize it to zero. This is typically what you want when creating new structures to pass to LWJGL functions.