Предусмотрен ли в методе ByteBuffer.allocate() кеширование использованных буфферов, или каждый раз создается новый?
В коде очень часто используется ByteBuffer.allocate(), для считывания потока. Пакеты данных приходят 3х размеров: 4, 16, 24 байтов. Других вариантов нет. Я не знаю, как лучше поступить, из соображения экономии ресурсов: каждый раз вызывать ByteBuffer.allocate(size), или завести 3 ByteBuffer нужных размеров, и использовать соотвествующий, каждый раз очищяя его.
Собственно, мой вопрос: предусмотрен ли в методе ByteBuffer.allocate() кеширование использованных буфферов, или каждый раз создается новый? Просто в будущем может придется получать пакеты других размеров, и накладно для каждого из них заводить ByteBuffer.
Как вам вообще в голову мысль пришла, что они могут кешироваться? Там же нет метода close(), по которому буфер мог бы вернуться в пул.
Нет там никакого кеширования, и не надо. Как правило такой буфер создаётся один на поток обработки, а не на каждый запрос как у вас. Так что никакого отдельного пула не требуется.