Red de conocimiento informático - Aprendizaje de programación - ¿Cómo aprender Java JVM? por donde empezar

¿Cómo aprender Java JVM? por donde empezar

¿Cómo aprender Java JVM? Primero, ¡necesitas saber su tipo!

¿Cómo aprender la máquina virtual Java? Tipo de datos (tipo básico, tipo de referencia) ====> Valor en sí, valor de referencia 2. Montón, pila =====> La pila es la unidad de tiempo de ejecución (cómo se procesan los datos) y el montón es la unidad de almacenamiento (cómo se almacenan los datos) )

------ Debido a que la pila es la unidad de tiempo de ejecución, la información almacenada en ella está relacionada con el hilo actual (o información relacionada con el programa. Incluyendo variables locales, estado de ejecución del programa, valores de retorno del método, etc. y el montón solo es responsable de almacenar información del objeto. En Java, la función principal es el punto de partida de la pila y el punto de partida del programa. tipos de datos y referencias a objetos en el montón? Al pasar parámetros, ¿los pasa por valor?

a) El programa siempre se ejecutará en la pila, por lo que al pasar parámetros, solo necesita pasar el tipo básico y referencia de objeto

. ¿El objeto en sí no se pasará directamente?

b) Java pasa parámetros en las llamadas a métodos. Debido a que no hay un puntero, ¿todas las llamadas se pasan por valor?

c) Entre el montón y la pila, la pila es lo más básico para la ejecución de programas. Un programa puede ejecutarse sin montón, pero no sin pila.

El montón proporciona servicios de almacenamiento de datos para la pila. Para decirlo sin rodeos, el montón es una pieza de memoria compartida****. Sin embargo, es la idea de separación del montón y la pila lo que hace posible la recolección de basura de Java

¿Cuál es el tamaño de los objetos Java?

a) El tamaño de un objeto vacío es 8bytes (un objeto sin ningún atributo) b) Objeto ob = new Object(); el espacio ocupado es: 4bytes + 8bytes. 4 bytes es el espacio necesario para contener referencias en la pila de Java como se mencionó en la sección anterior. Y 8 bytes es información del objeto del montón de Java.

c) La asignación de memoria de objetos en Java se divide en múltiplos enteros de 8 y el tamaño de la clase contenedora de tipo básico es de al menos

16 bytes

de referencia. ¿tipo?

a) El tamaño de la pila de Java es el espacio necesario para almacenar referencias.

a) Los tipos de referencias de objetos se dividen en referencias fuertes, referencias suaves, referencias débiles y referencias virtuales.

b) Referencias fuertes: Estas referencias son generadas por la máquina virtual cuando declaramos el objeto como referencia fuerte. En un entorno de referencia fuerte, la recolección de basura debe determinar estrictamente si el objeto actual es una referencia fuerte. Si es una referencia fuerte, no se recolectará como basura. c) Referencia suave: la referencia suave se usa generalmente como caché. La diferencia entre referencias suaves y referencias fuertes es que cuando las referencias suaves se recolectan como basura, la máquina virtual decide si reclama las referencias suaves en función de la memoria restante actual en el sistema. Si la memoria restante es pequeña, la máquina virtual recuperará el espacio al que hace referencia la referencia suave; si la memoria restante es relativamente grande, no se recuperará. En otras palabras, cuando ocurre un OutOfMemory, no debe haber referencias suaves presentes en la máquina virtual. d) Referencia débil: la referencia débil es similar a la referencia suave y se utiliza como caché. Pero a diferencia de las referencias suaves, las referencias débiles definitivamente se reciclarán cuando se realice la recolección de basura, por lo que solo hay un ciclo de recolección de basura en su ciclo de vida.

Resumen de depuración de JVM (3): algoritmo básico de recolección de basura 7. ¿Problemas que enfrenta la recolección de basura?

a) Cómo distinguir la basura. La recolección de basura comienza desde algunos objetos raíz (pila Java, variables estáticas, registros...). Y

La pila de Java más simple es la función principal que ejecuta el programa Java b) Cómo lidiar con la fragmentación. c) Cómo resolver el problema de crear y reciclar objetos al mismo tiempo, en los métodos de recolección de basura existentes, para realizar la recolección de basura, generalmente es necesario suspender toda la aplicación (es decir, suspender la asignación de memoria) y luego continuar con la recolección de basura, ¿continuar la aplicación una vez completada la recolección?

8. ¿Descripción detallada de la recolección de basura generacional?

a) Por qué dividir la generación: diferentes objetos tienen diferentes ciclos de vida.

Por lo tanto, los objetos con diferentes ciclos de vida se pueden recolectar de diferentes maneras para mejorar la eficiencia del reciclaje.

b) Cómo dividir generaciones **** en una máquina virtual se divide en tres generaciones: generación joven, generación anterior y generación permanente. Entre ellos, la generación permanente almacena principalmente la información de clase de las clases Java y tiene poco que ver con los objetos Java recolectados mediante la recolección de basura. La división entre la generación joven y la generación anterior es una división que tiene un mayor impacto en la recolección de basura

¿Qué desencadena la recolección de basura GC? Hay dos tipos de recolección de basura GC: Scavenge GC (cuando se crea un nuevo objeto). se genera y no se aplica en Eden Cuando se alcanza el espacio

, se activará Scavenge GC, se realizará GC en el área de Eden, los objetos no viables se eliminarán y los objetos supervivientes se moverán al Survivor Esta es la primera vez que se ejecutará GC (los objetos no viables se eliminarán y los objetos restantes se moverán al Survivor. Mueva los objetos supervivientes al área de Survivor) y GC completo (recicle todo el montón). )

¿Ejemplo de configuración típica?

a) ¿Configuración del tamaño del montón?

b) Selección del reciclador. Hay recopiladores en serie, recopiladores paralelos y recopiladores concurrentes, pero el recopilador en serie solo es adecuado para cantidades de datos más pequeñas, por lo que aquí se eligen principalmente el recopilador paralelo y el recopilador concurrente.

¿Cuello de botella en la recogida de basura?

a) El método tradicional de recolección de basura generacional reduce la carga de recolección de basura de

la aplicación hasta cierto punto, llevando el rendimiento de la aplicación a un límite. Pero un problema que no pudo resolver fue la suspensión de la aplicación causada por GC completo

¡Los amigos que aprenden Java pueden unirse a nuestro grupo para descargar materiales de video al 540-998-279!