Другое дело, что в основном по историческим причинам большинство данных разбивается на 8-битные байты. Это могло быть любое число, но 8-разрядные компьютеры были действительно популярны, когда все было действительно стандартизировано, я думаю.
Так, например, текст часто хранится с одним 8-битным байтом на букву (в режиме ASCII). Файлы данных часто индексируются с помощью указателей на байтовые индексы. Люди говорят о килобайтах и мегабайтах, и они означают 1024 * 8 бит. или 2 * 8 бит.
Баты являются своего рода универсальной единицей вычислительной техники для множества целей. Если вы хотите отредактировать стандартный файл, прочитанный другими программами, вам, скорее всего, понадобится загрузить его в байт [] и манипулировать отдельными байтами в какой-то момент.
Если солнце не содержит байтовый тип данных, писать java-программы, которые работали с данными или текстом из других программ, были бы огромной болью. Вам нужно будет загружать целые числа, а также выполнять сдвиг и операции для выделения отдельных битов и разделить индексы на 4 все время. Не весело.
Таким образом, байты не были добавлены для сохранения памяти, но для обеспечения безопасности.
Поскольку байт может иметь один из двух возможных значений, Sun решил, что они должны обозначать от -128 до 127, а не от 0 до 255, потому что они не хотели иметь дело с подписью и без знака числа (все их типы данных подписаны, а Java не имеет ключевое слово unsigned, например C/C++).
Они использовали два дополнения, потому что это стандартный способ решения отрицательных чисел.