Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Не стоит забывать, что строки иммутабельны. Они не модифицируются после аллокации. Операторы, такие как "+" при объединении строк в действительности создают новый объект String, содержащий конкатенацию строк.
Не стоит забывать, что строки неизменяемы. Они не изменяются после выделения памяти. Операторы, такие как «+» при объединении строк в действительности создают новый объект String, содержащий объединение строк.
@Override
public String toString(){
return new StringBuilder("value:").append(value).toString();
}
deserialize(byte[] data) и deserialize(InputStream stream) и если у вас есть InputStream например файла, то имеет смысл не вычитывать ВЕСЬ файл в массив байтов и только потом отдавать десериализатору. А лучше сразу отдать ему InputStream. Думаю, что разработчики библиотек не все идиоты и не будут считывать по 1 байту, как вы тут написали.ArrayList и не париться с Collections.unmodifableList. Но опять же всегда. Автор сказал, что если у вас есть у десериализатора есть 2 метода
Т.е. он понимает
Наверное, у меня глаза замылились перед выходными. Покажете точную цитату, из которой вы сделали такой вывод?
Многие библиотеки, такие как нативный сериализатор Java, Protocol Buffers и т.д. способны строить десериализованные объекты, используя данные напрямую из сетевого потока, т.е. не требуют хранения данных в памяти и внутренних массивах.
Эту фразу нужно уточнить — в случае однопоточного метода.
readFileItem неожиданно начнёт выполнятся в других потоках, но это уже выдумки.
5 «хаков» для уменьшения накладных расходов при сборке мусора