Afzaal Ahmad Zeeshan
Это зависит от того, какой тип контейнера вы используете, простой массив Java, a List
, или любой другой изготовленный на заказ контейнер. Каждый из этих контейнеров имеет нулевые, постоянные или несколько переменные накладные расходы для обслуживания других операций. Как будто ... List
тип может хранить некоторое дополнительное пространство памяти, чтобы обеспечить более быструю вставку, в то время как массивы занимают O(N) пространства...
Цитата:
я хочу создать большое количество объектов в java, чтобы накладные расходы на память были минимальными
Я не уверен, что следую за вами в этом или нет, но каждый объект будет занимать свое собственное пространство в памяти, либо созданное с помощью цикла, вызовов функций, либо внутренне.
Объекты в Java-это ссылки на их экземпляры, создание массива из 1000 объектов не означает, что вы создаете 1000 объектов, вам придется это сделать
new
о них через некоторое время. Именно так работает система типов Java.
Цитата:
накладные расходы памяти, связанные с концепцией создания объектов в java
Как Java обрабатывает эту основу внутри JVM, в этом я не уверен, но у нее есть вызов функции, который создает сам объект, а также любые внутренние объекты или структуры. Это в основном рекурсивный вызов, любой
накладные расходы связанные с ними в основном из—за внутреннего создания объектов, а также получения ссылок на переменные и их объекты-JVM realm.
И последнее, но не менее важное: не беспокойтесь о внутренних компонентах Java, если вам не нужно писать компилятор, в противном случае просто делайте все возможное на высоком уровне. Видеть здесь,
Создание объектов (учебные пособия Java™ > изучение языка Java > классы и объекты)[
^]