Какой из них быстрее / лучше / больше памяти? - PullRequest
0 голосов
/ 05 марта 2020

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

public Map<String, Sheet> getCalcedSheets() {
   Sheet mySheet = this.doSomeBigCalculationsAndGiveMeMySheet();
   return mySheet;
}

Не лучше ли не инициализировать экземпляр класса, а просто вернуть метод возвращает тебе? Например:

public Map<String, Sheet> getCalcedSheets() throws Exception {
    return this.doSomeBigCalculationsAndGiveMeMySheet();;
}

Я думаю, что это будет более дружественным к процессору, потому что ни один экземпляр Sheet не будет инициализирован. А также mySheet не будет собираться мусором сразу после создания.

Что вы думаете?

1 Ответ

0 голосов
/ 05 марта 2020

объект mySheet является ссылкой из стека на реальный объект. Это означает, что когда стек завершен (конец функции), указатель больше не будет существовать (сборщик мусора не очищает стек - только куча памяти)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...