Bien, entonces he estado desarrollando en Java desde hace poco más de un año y estoy haciendo un esfuerzo para profundizar en el lenguaje y su mejor prácticas.Java Statics Primitivas, objetos, métodos y el montón (gestión de memoria y mejores prácticas)
Así que aquí es lo que sé:
Java "pasa por tipo" - es decir primitivas pasan por copia y pase referencia de objeto de copia (referencias apuntan a su objeto en el montón).
Las variables de instancia primitiva y las referencias viven en su objeto de clase en el montón y las primitivas locales y las referencias en vivo en la pila (en su respectivo marco de pila).
Perm Gen. espacio de memoria es donde se almacenan metadatos de clase (utilizados para la reflexión).
El Heap tiene un espacio Eden donde los objetos nuevos son lugares, un espacio Joven donde se guardan los objetos que han sobrevivido a un GC y un espacio Tenured donde se colocan objetos de larga vida.
Así que aquí es lo que me gustaría entender:
¿Dónde primitivas y referencias static final y estáticas en vivo que la JVM es capaz de utilizar una única instancia?
¿Están los objetos finales estáticos y estáticos almacenados en el Heap (supongo que se mueven a la tenencia)?
¿Cuál es la mejor práctica en cuanto a la cantidad de referencias finales estáticas en una aplicación?
¿La creación de más referencias finales estáticas disminuirá la cantidad de espacio de Heap en JVM?
He leído muchas explicaciones diferentes sobre esto (todo diferían) y me gustaría si es un veterano en el lenguaje Java podría proporcionar una buena explicación. ¡Gracias por adelantado!
esta cuestión de forma tiene algo de información sobre las clases estáticas http://stackoverflow.com/questions/3849634/ static-allocation-in-java-heap-stack-and-permanent-generation – fasseg