Если у меня есть объект O с гигантским методом f() и я загружаю 10000 примеров O в память.10000 примеров f() также загружены в память?Если так, значит ли это, что я бы сэкономил память, сделав эту функцию статической, если это возможно?
O
f()
Методы экземпляра загружаются в область методов в JVM. он загружается один раз, но будет много стеков для каждого вызова функции f (), чтобы отслеживать значения собственных локальных переменных
Нет.Загружен только один экземпляр метода.
Нет. Методы не являются частью экземпляров; они часть классов. Не было бы смысла повторять код для каждого экземпляра (потому что он никогда не будет меняться), поэтому реализация, проще говоря, умнее этого.
Метод экземпляра является просто шаблоном и определяется в классе (не в каждом экземпляре).Вы не сэкономите память, сделав ее статичной.