Обновить

Комментарии 5

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

    public InputStream concatWithBigData(InputStream data) {

    InputStream bigData = bigDataRef.get();

        if (bigData == null) {
            bigData = loadBigData();
            bigDataRef = new SoftReference<>(bigData);
        }

        InputStream result = concat(bigData, data);
        bigData = null;
        return result;
    }

Подскажите пожалуйста, а зачем "bigData = null" ?

Наверное чтобы убить сильную ссылку. Но в данном случае она и сама умрет при выходе из метода, так как сильная ссылка локальная, так что обнуление ссылки выглядит странно

Сильная ссылка здесь обнуляется как можно раньше, чтобы "большие данные" стали раньше пригодны для удаления. После bigData = null вполне могут продолжиться вычисления в этом методе. Поставлю троеточие после этой строки.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации