Строки Java могут содержать любые данные, которые вам нравятся, это двоичные строки. Однако некоторые функции могут не работать с неверно сформированными строками (например, содержащими \ x00), в зависимости от указанной кодировки символов. Вы можете (вероятно) полагаться на стандартные методы для работы, но имейте в виду, что, вставляя «плохие» символы, вы злоупотребляете типом и можете нарушать чужой код.