Небольшая историческая экскурсия ...
Использование байтовых массивов вместо объектов String фактически имело некоторые существенные преимущества в первые дни Java (1.0 / 1.1), если вы были уверены, что вам никогда не понадобится что-либо за пределами ISO-8859-1. С виртуальными машинами того времени было более чем в 10 раз быстрее использовать drawBytes () по сравнению с drawString (), и это действительно экономит память, которая в то время была все еще очень скудной, а апплеты имели жестко закодированный барьер памяти 32 и позже 64 МБ в любом случае. Мало того, что byte [] меньше встроенного char [] объектов String, но вы также можете сохранить сам сравнительно тяжелый объект String, который действительно имеет значение, если у вас много коротких строк. Кроме того, доступ к массиву простых байтов также быстрее, чем использование методов доступа String со всеми проверками их дополнительных границ.
Но поскольку drawBytes перестала работать быстрее в Java 1.2 и поскольку текущие JIT намного лучше, чем Symantec JIT того времени, оставшееся минимальное преимущество в производительности массивов byte [] над строками больше не стоит хлопот. Преимущество памяти все еще есть, и, таким образом, оно все еще может быть вариантом в некоторых очень редких экстремальных сценариях, но в настоящее время это не следует учитывать, если в этом нет особой необходимости.