Начиная с Java 9, класс String
внутренне использует byte[]
, поэтому он будет использовать один байт на символ. Если вы имеете дело только с символами ASCII, он будет использовать один байт на символ, поэтому вы не сэкономите память, используя byte[]
самостоятельно, если это вас беспокоит.
Если у вас есть символы не ASCII с двумя или даже больше байтов, вы не можете предположить, что один символ занимает один байт.
Вы должны сами позаботиться о кодировании и декодировании, а класс String
в Java уже очень оптимизирован в этом.
Короче говоря, я бы порекомендовал использовать String
, если вы действительно не можете доказать увеличение производительности при использовании byte[]
по сравнению с String
.