2013-07-18 2 views
0

Мой вопрос заключается в том, влияет ли создание нескольких экземпляров объекта со статическими элементами на производительность. Есть ли новая память, выделенная для каждой из статических переменных каждый раз, когда вы создаете экземпляр класса?Статические свойства Java влияют на производительность?

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

Я работаю над игрой, так вот почему я беспокоиться об оптимизации

+0

Операции 'import' вообще не влияют на производительность вашей программы. Они всего лишь время компиляции; ваш байт-код не будет отличаться, если вы импортируете класс или используете его с его полностью квалифицированным именем класса. – Jesper

+3

Сделайте свою программу работоспособной. Затем посмотрите на производительность. Многие проблемы вызваны «преждевременной оптимизацией». – CPerkins

ответ

0

Да, статические члены сохранить память, потому что есть только одна копия данных в классе Static members memory efficiency.

Также использование import-statement действительно не импортирует класс. Это дает вам только ярлык для доступа к классу. При импорте класса вам не нужно писать полное имя класса со всеми его именами пакетов. Так, например, вместо того, чтобы писать java.util.List каждый, вы можете просто написать List после импорта этого класса по import java.util.List;.

1

Статические поля относятся к классу, а не к экземплярам класса. Поэтому создание экземпляра не выделяет ничего для статических членов. Они просто сохраняют свою текущую ценность.

Импорт не существует во время выполнения. Они используются только для того, чтобы вы могли писать List вместо java.util.List в исходном коде. Если вы использовали только квалифицированные имена классов и удалили все импорты, байт-код, сгенерированный компилятором, будет точно таким же.

+0

Большое спасибо, именно то, что я искал –

Смежные вопросы