Si tengo un objeto O
con un método gigantesco f()
, y cargo 10000 ejemplos de O
en la memoria. ¿Hay 10000 ejemplos de f()
cargados en la memoria también? Si es así, ¿significa eso que ahorraría memoria al hacer esta función estática si es posible?¿Se carga un método de instancia en la memoria por objeto o por clase?
7
A
Respuesta
9
Los métodos de instancia se cargan en el Área del método en JVM. se carga una vez, pero habrá muchas pilas por cada llamada que realice a f(), para hacer un seguimiento de sus propios valores de variables locales.
6
No. Solo hay una instancia del método cargado.
2
El método de instancia es solo una plantilla y se define en una clase (no en todas las instancias). No ahorrarías memoria haciéndola estática.
2
No. Los métodos no son parte de las instancias; son parte de las clases. No tendría sentido repetir el código para cada instancia (porque nunca variaría) por lo que la implementación es, simplemente, más inteligente que eso.
Cuestiones relacionadas
- 1. instancia de variable 'variable' visitada por error método de clase
- 2. En Ruby, dentro de un método de clase, ¿es la clase o una instancia?
- 3. ¿Por qué se puede cambiar la variable de miembro privado por instancia de clase?
- 4. ¿Por qué toBinaryString no es un método de instancia en la clase Integer?
- 5. ¿Por qué la clase python datetime tiene un método 'fromtimestamp', pero no un método 'totimestamp'? clase
- 6. C# Método estático vs instancia de objeto
- 7. ¿Por qué obtengo "objeto no es una instancia de declaración de clase" cuando invoco un método que utiliza la reflexión?
- 8. Obteniendo instancia de objeto por nombre de cadena en scala
- 9. Selenio cómo seleccionar un objeto por clase
- 10. ¿Por qué se llama al método de clase base si la clase derivada anula el método?
- 11. Reflejo en Ruby. Crear una instancia de un objeto por el nombre de clase dado
- 12. ¿Por qué mi método estático oculta mi método de instancia?
- 13. Cambio instancia de clase dentro de un método de instancia
- 14. ¿Por qué @decorator no puede decorar un método estático o un método de clase?
- 15. ¿Por qué no se puede usar el método de instancia noecho de clase IO?
- 16. ¿Es seguro reemplazar un objeto propio por otro objeto del mismo tipo en un método?
- 17. ¿cuántas clases por paquete? métodos por clase? líneas por método?
- 18. Obtener instancia de clase por nombre de clase cadena
- 19. Scala - objeto dinámico/clase de carga
- 20. ¿Múltiples delegados por un objeto?
- 21. ¿Un ResultSet carga todos los datos en la memoria o solo cuando se solicita?
- 22. ¿Qué sucede en la memoria cuando se crea una instancia de una clase de C++?
- 23. ¿Bloqueo de método sincronizado de Java en objeto o método?
- 24. python3: vincular el método a la instancia de clase con .__ get __(), funciona, pero ¿por qué?
- 25. Anulando un método llamado por el constructor de una clase
- 26. ¿Qué se entiende por 'objeto de primera clase'?
- 27. ¿Cómo devolver un objeto de clase por referencia en C++?
- 28. ¿Se pasan los objetos ColdFusion por referencia o por valor?
- 29. ¿Por qué la interfaz java.util.Set <V> no proporciona un método get (Object o)?
- 30. ¿Cuándo y por qué elevaría un objeto?
+1 para la nota de que la llamada ocupará espacio en la pila. – corsiKa
¿Le deja saber si está equivocado? Si no está seguro, no responda la pregunta. –
Es importante tener en cuenta que el espacio de pila para el método solo se usa DURANTE UNA LLAMADA. No hay 10.000 piezas de pila en uso en ningún momento solo porque tiene 10,000 instancias creadas. – DJClayworth