Увеличивает ли добавление методов к классу Java использование памяти его экземплярами? - PullRequest
7 голосов
/ 27 марта 2012

Добавление переменных-членов в класс, безусловно, увеличивает объем памяти его экземпляров в куче, но как насчет методов класса?

Например, если у меня есть класс, состоящий из одного StringBuilder, но я продолжаю добавлять десятки методов для управления этим StringBuilder, будет ли каждый экземпляр этого класса занимать пропорционально больше памяти, когда я добавляю больше методов?

Спасибо!

Ответы [ 3 ]

12 голосов
/ 27 марта 2012

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

4 голосов
/ 27 марта 2012

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

2 голосов
/ 27 марта 2012

Это зависит от виртуальной машины, но для виртуальной машины Oracle Hotspot, которую все используют, нет, размер экземпляра не затрагивается.

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