Похоже, что ответ вероятно .
Глядя на реализацию ByteBuffer
, он использует DirectByteBuffer
под капотом. Взглянув на реализацию исходного кода Android, он имеет такой комментарий:
Создает новый прямой байтовый буфер
данная мощность на вновь выделенных
Операционная память. Память будет
обнуляется.
Итак, когда вы выделяете буфер, все содержимое памяти будет инициализировано нулем. Реализация oracle также выполняет обнуление.
Это деталь реализации, хотя. Поскольку Javadoc ничего не говорит об обнулении, технически некорректно полагаться на него. Чтобы быть правильным, вы должны действительно обнулить буфер самостоятельно. На практике, если вы по какой-то причине действительно беспокоитесь о производительности, вы можете не обращать на это внимания, но имейте в виду, что некоторые реализации JVM могут не выполнять обнуление.