¿Qué debe saber sobre la máquina virtual Java?



Este blog cubrirá el concepto de máquina virtual Java en detalle con los componentes de su arquitectura y las diferencias clave entre JVM, JRE y JDK.

El lenguaje ha sido un gigante en la industria de las tecnologías de la información durante mucho tiempo. Tiene algunos conceptos de primer nivel que lo hacen mejor que el resto del lenguaje de programación. Uno de esos conceptos es la máquina virtual Java; en este artículo, aprenderemos sobre los diversos aspectos de máquina virtual en detalle. Los siguientes son los temas que se tratan en este blog:

¿Qué es la máquina virtual Java?

La máquina virtual Java es una máquina abstracta independiente de la plataforma que proporciona un entorno de ejecución en el que se ejecuta el código de bytes de Java.





Es una parte del entorno de ejecución de Java que convierte el código de bytes de Java en un lenguaje legible por máquina. El principal que tenemos en un programa Java es realmente llamado por la máquina virtual Java.

jvm - máquina virtual java - edureka

¿Por qué necesitamos una máquina virtual Java?

Necesitamos la máquina virtual Java para las tareas que realiza y que son extremadamente necesarias para cualquier desarrollo que involucre Java. A continuación se muestran algunas tareas que realiza la máquina virtual Java.



  • Carga el código
  • Verificación de código
  • Ejecución del código
  • Proporciona el entorno de tiempo de ejecución para las aplicaciones.
  • Área de memoria
  • Registro establecido
  • Proporciona un montón de recolección de basura
  • Notificación de errores fatales
  • Provee un clase formato de archivo

Con todas estas operaciones, la máquina virtual Java es una parte integral del desarrollo de Java. Intentemos comprender cómo funciona con la ayuda de la arquitectura de la máquina virtual Java.

Arquitectura de máquina virtual Java

La arquitectura de la máquina virtual Java es bastante simple, tiene un área de memoria, un cargador de clases y un motor de ejecución entre otros componentes. analicemos cada uno de ellos en detalle.

ClassLoader

Es un subsistema que se utiliza para cargar archivos de clases. Siempre que ejecutamos un programa en Java, el ClassLoader lo carga primero. la función principal incluye inicialización, vinculación y carga. Los siguientes son los cargadores de clases integrados en Java.



    • Oreja ClassLoader: es la superclase de Extension ClassLoader que carga el archivo rt.jar.

    • Extensión ClassLoader: carga los archivos jar ubicados en el directorio.

    • Sistema / Aplicación ClassLoader: carga los archivos de clase desde la ruta de clase.

    • Operación de carga - Primero, el cargador de clases carga los archivos .class y genera los datos correspondientes en formato binario que se guarda en el área de métodos.

    • Operación de vinculación - Después de cargarlo se prepara, verifica y hace resolución. JVM asigna la memoria para las variables de clase e inicializa la memoria a los valores predeterminados. Asegura la exactitud del archivo .class y cuando falla la verificación, obtenemos el error de excepción en tiempo de ejecución.

    • Inicialización - Todas las variables estáticas se asignan con sus valores definidos en el bloque de código en esta fase.

      clase __init__ python

Memoria JVM

  • Área de método - Almacena las estructuras para cada clase como el código, datos de campo, grupo de constantes de tiempo de ejecución, datos de método, etc.

  • Montón - Los objetos se asignan en el tiempo de ejecución en el montón.

  • Pilas de idiomas de JVM - Almacena variables y resultados locales. Desempeña un papel importante en la invocación y devolución de resultados. Siempre que se invoca un método, se crea un marco y se destruye tan pronto como finaliza o completa la invocación.

  • Registros de PC - Tiene la dirección o ubicación de la instrucción JVM que se está ejecutando.

  • Pilas de métodos nativos - Todos los métodos nativos utilizados en las aplicaciones están presentes en las pilas de métodos nativos.

  • Motor de ejecución - Un motor de ejecución contiene un procesador virtual, un intérprete y un JIT compilador.

    ec2 crea una instancia a partir de una instantánea
  • Método nativo Interfaz Es un que proporciona.

Ahora que hemos entendido la arquitectura de la JVM, echemos un vistazo al proceso de ejecución y compilación del código.

Proceso de ejecución

Los siguientes pasos tienen lugar durante la ejecución y compilación de un código Java.

  • El método principal se almacena en un solo archivo y otros métodos se almacenan en diferentes archivos.
  • Después de la compilación, proporcionará los archivos .class correspondientes que tendrán el código de bytes sin ningún vínculo, a diferencia de C.
  • Durante la ejecución, los archivos de clase se verifican en busca de infracciones utilizando Classloader.
  • Después de esto, el código de bytes se convierte en el código de máquina nativo correspondiente. Esta es también la razón por la que Java es comparativamente más lento.

Ahora que sabemos cómo funciona la ejecución, echemos un vistazo a la diferencia entre JDK, JRE y JVM.

Diferencia entre JDK, JRE y JVM

A continuación se presentan algunas diferencias importantes entre JDK , JVM y JRE.

  1. JDK son las siglas de Java Development Kit y JRE son las siglas de Java Runtime Environment.
  2. JDK es para el desarrollo, mientras que JRE es para el entorno de tiempo de ejecución.
  3. JVM es una parte esencial de JDK y JRE para ejecutar cualquier programa Java.
  4. JVM es una parte integral de la programación Java y proporciona independencia de plataforma.

Esto nos lleva al final de este artículo donde hemos aprendido sobre la máquina virtual Java en detalle. Espero que tengas claro todo lo que se ha compartido contigo en este tutorial.

Si encuentra relevante este artículo sobre 'Java Virtual Machine', consulte Edureka , una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo.

Estamos aquí para ayudarlo en cada paso de su viaje y crear un plan de estudios diseñado para estudiantes y profesionales que desean ser desarrolladores de Java. El curso está diseñado para darle una ventaja en la programación de Java y capacitarlo para los conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.

Si encuentra alguna pregunta, no dude en hacer todas sus preguntas en la sección de comentarios de “Java Virtual Machine” y nuestro equipo estará encantado de responder.