Não tem certeza se um byte normal [] será suficiente, ou se você precisa de um ByteBuffer, ou mesmo de um ByteBuffer direto?
As diferenças de desempenho são amplamente dependentes do aplicativo, algumas perguntas a serem feitas:
Você vai encher e esvaziar o buffer com frequência?
O buffer deve ficar grande (1024 bytes +) antes de ser drenado?
Um buffer menor que é esvaziado com mais frequência funcionará melhor do que um buffer grande?
Aqui está uma boa visão geral: http://www.evanjones.ca/software/java-bytebuffers.html