Очистить массив ArrayList<ArrayList<String[]>> из памяти

112
16 декабря 2020, 17:20

Подскажите пожалуйста, правильно ли я очищаю глобальные массивы из памяти, и надо ли это вообще делать?

//уничтожение(обнуление) массивов, особенно самого большого
public void kill_array_of_gallery() {
    if( galleries != null) {
        galleries.clear();
        galleries = null;
    }
    if( n_map_img_arrList != null) {
        n_map_img_arrList.clear();
        n_map_img_arrList = null;
    }
    if( mapsActivity.fr_Gallery_2.load_imgName_arrList != null) {
        mapsActivity.fr_Gallery_2.load_imgName_arrList.clear();
        mapsActivity.fr_Gallery_2.load_imgName_arrList = null;
    }
}
Answer 1

Тут два варианта, либо очистить список, либо присвоить ссылке на список значение null.

  • В первом случае, если "достижимые" объекты не содержат ссылки на объекты содержащиеся в массиве, garbage collector (GC) удалит эти объекты;

  • Во втором случае, если "достижимые" объекты не содержат ссылки на этот список, GC удалит этот список, но не удалит объекты которые могли храниться в этом списке, если на них есть ссылки из "достижимых" объектов;

Как GC определяет "достижимость" объектов? С его точки зрения, объект считается достижимым, если до него можно добраться из GC roots. GC roots - это особые места, такие как классы стандартной библиотеки, локальные переменные, статические переменные, JNI ссылки и пр. Более подробно про это можете почитать здесь

Касательно вашего вопроса, достаточно просто вызвать clear()

READ ALSO
Помогите разобраться с циклом (Iterator) для List

Помогите разобраться с циклом (Iterator) для List

У меня есть ArrayList box (коробка с фигурами)Мне нужно реализовать метод, который вытаскивает из коробки все круглые фигуры

121
Подключение библиотеки в IntelliJ IDEA

Подключение библиотеки в IntelliJ IDEA

Нашел библиотеку на GitHub https://githubcom/processing/processing-sound но не понимаю как подключить без jar файла, Maven не использую

117
Замена компонента с помощью Mockito

Замена компонента с помощью Mockito

Писал тест для своего проекта на Spring Boot и появилась проблема: класс, который я тестирую, использует в одном из своих методов компонент CrudRepository...

103
Браузер не читает фоновое изображение

Браузер не читает фоновое изображение

Привет я хочу поставить фоновое изображение своему сайтуНо браузер не читает его

114