2013-08-24 1 views
0

Я просто хотел знать, что есть какая-либо проблема с производительностью вПроблема с производительностью при использовании двух классов java в одном файле java

1) Использование двух классов в одном файле java.

2) Использование внутреннего класса java.

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

+4

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

+0

@HovercraftFullOfEels Возможно, им понравится, что он лучше от вас. –

+0

@EricStein: в любом случае, это глупый вопрос. –

ответ

2

Не беспокойтесь о производительности, пока кто-то не заметит реальной проблемы в производственной среде. Все остальное - преждевременная оптимизация.

При этом не используйте два класса верхнего уровня в одном файле java. Это плохой запах кода.

+0

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

+0

@Tarik Внутренние классы великолепны. Я беспокоюсь о двух объявлениях класса верхнего уровня в одном файле, что является законным, но ужасающим. Вот о чем он говорит в пункте 1. –

+0

Ок. Понял. Пожалуйста, отредактируйте свой ответ, чтобы я мог голосовать. – Tarik

2

Нет никакой разницы между созданием двух классов в одном файле и созданием внутреннего класса.
Компилятор Sine java генерирует разные файлы .class для каждого класса независимо от его внутреннего класса.
Таким образом, нет разницы во время выполнения.

1

Первое,

Я немного не согласен, если вы сравниваете inner class и писать два classes в одном file.

Внутренний класс ограничивается классом Outer как ваша спецификация дизайна.

И писать два класса в одном file зависит от вас (учитывая личный вкус). Очевидно, расплывчатое и приветливое обслуживание issues.

Существует не вопрос проблемы производительности, Так как только вы скомпилировать этот файл отдельный .class генерирует для каждого class.

4

Тот факт, что классы исходный код находится в одном файле Java или в двух отдельных файлов Java Безразлично» t влияют на байт-код: оба ведут к точному одному и тому же байтовому коду.

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

Я согласен с @EricStein: не беспокойтесь о производительности, прежде чем у вас возникнет реальная проблема с производительностью. Стремитесь к удобочитаемости, ремонтопригодности и понятности. Стандарт должен иметь один класс верхнего уровня для исходного файла. Вы должны соблюдать этот стандарт.

+0

Итак, что вы предлагаете для внутренней структуры данных, как мы используем, чтобы иметь в C, как struct ??? – DevCoder

+2

Что вы подразумеваете под «внутренним»? Класс - это то, что вы используете для определения структур данных в Java. Независимо от того, является ли это класс высшего уровня или нет, публичный или нет, класс - это вопрос видимости и дизайна, а не вопрос производительности. Измените свой вопрос и укажите конкретный пример и вопрос, если вы хотите получить более конкретный ответ. –

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