Подтвердить что ты не робот

Свободная память байтового массива в Java

Каков наилучший способ освободить память, выделенную массивом байтов (новый байт [размер] в Java)?

4b9b3361

Ответ 1

Прекратите ссылаться на него.

Ответ 2

При создании нового байта [] в Java вы делаете что-то вроде

byte[] myArray = new byte[54];

Чтобы освободить его, вы должны сделать

myArray = null;

Если что-то еще ссылается на ваш массив байтов, например

yourArray = myArray;

вам нужно также установить другие ссылки на нуль, например

yourArray = null;

В сборке мусора Java автоматически. Если JVM может обнаружить, что часть памяти больше недоступна для всей программы, JVM освободит память для вас.

Ответ 3

Удаление всей ссылки на этот массив байтов. Сборщик мусора позаботится об остальном.

Ответ 4

Установка всех ссылок на него на null сделает его кандидатом на сборку мусора Java. Вы не можете быть уверены, сколько времени потребуется, чтобы это произошло. Если вам действительно нужно явно вернуть память сразу, вы можете сделать вызов System.gc();

Также для очистки вам может не понадобиться явно указывать ссылки на null. Если ссылки выходят из области видимости, они автоматически отбираются, например. локальная ссылка на переменную будет отменена после того, как метод, который он объявит, завершит выполнение. Поэтому локальные переменные обычно выпускаются неявно все время во время выполнения приложений.