Строковое интернирование. Это - то, которое я не видел, подходят в этом обсуждении все же. Это немного неясно, но в определенных условиях это может быть полезно.
CLR сохраняет таблицу ссылок на литеральные строки (и программно интернированные строки). При использовании той же строки в нескольких местах в коде, это будет сохранено однажды в таблице. Это может упростить объем памяти, требуемый для выделения строк.
можно протестировать, если строка интернируется при помощи Строка. IsInterned (строка) и можно интернировать строку с помощью Строка. Интерн (строка) .
Примечание: CLR может содержать ссылку на интернированную строку после приложения или даже конца AppDomain. См. документацию MSDN для деталей.
public final class ProtocolConstants {
public final char RECORD_SEPARATOR = 0x1e;
public final char END_OF_TEXT = 0x03;
private ProtocolConstants() {}
}
что-то вроде этого?
В строку Java
можно добавлять любые символы. Но String
, вероятно, не то, что вам нужно, если вы просто хотите передавать двоичные данные. Рассмотрите возможность использования байта []
или другого побайтно-ориентированного интерфейса.
Если хотите, вы можете записать их как литералы Unicode (в символы или строки):
final String endOfText = "\u0003";
Я предполагаю, что вам буквально не нужен ASCII для протокола на основе байтов (символы по-прежнему 16 бит).