Создавать класс или нет? - PullRequest
2 голосов
/ 29 мая 2011

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

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

Я имею в виду это:

(new Lesson02()).run(fullscreen);

вместо этого:

Lesson02 l2 = new Lesson02();
l2.run(fullscreen);

Спасибо.

Ответы [ 7 ]

3 голосов
/ 29 мая 2011

Нет никакой разницы, если вы не планируете использовать объект позже. Так что вариант 1 в порядке. Если вы воспользуетесь опцией 2 и в конечном итоге не будете использовать l2 позже в коде, тогда он все равно будет собирать мусор.

2 голосов
/ 29 мая 2011

Первая опция все равно создаст временную ссылочную переменную; по имени или без имени, у вас есть локальная переменная, ссылающаяся на объект в куче. Если его никогда не использовать снова, сборщик мусора очистит вас.

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

2 голосов
/ 29 мая 2011

Два варианта практически идентичны.

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

2 голосов
/ 29 мая 2011

Так как Java является языком для сборки мусора, первый способ вполне приемлем. Я бы предпочел его за его компактность и бесперебойность над вторым.

2 голосов
/ 29 мая 2011

Я обычно использую первый вариант, если в конструкторе и функции нет большого количества параметров, тогда я предпочитаю разделить его для удобства чтения. Общее правило: используйте все, что более понятно и читабельно.

2 голосов
/ 29 мая 2011

До тех пор, пока вам не придется использовать объект позже, первый вариант должен быть в порядке.

1 голос
/ 29 мая 2011

Первый способ лучше всего подходит, потому что Java может выделить память для вас.

...