Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

2 Días
14 Hrs
17 Min
11 Seg

Qué es la Java Virtual Machine

2/37

Reading

What is a Java Virtual Machine?

A virtual machine is a virtualization or simulation of an operating system or of the processes that occur within it. In our case, the Java Virtual Machine belongs to the second type and is in charge of simulating the processes that occur within an operating system. This type of virtual machines is called Process Virtual Machines.

What advantage does it give us?

It helps us to handle pointers and memory references that in other types of language such as C or C++ must be handled manually. For this, a process called garbage collection is used. This process is in charge of checking which memory reference is not being used in order to eliminate it and thus reduce the amount of memory that a program can consume.

How does the JVM work?

The JVM works as a middle ground between the code we write and what the computer's operating system understands. Depending on the operating system you use it can vary. The JVM helps us to make our code run on Linux, Windows and MacOS. Our code is converted by the JVM to a language that the operating system can understand called Java Bytecode.

In simpler words, we input Kotlin code and it is transformed into Bytecode. This process can happen with other languages like Java, this makes our Kotlin code can be used from Java and Java code can be used in Kotlin.

Contributions 24

Questions 3

Sort by:

Want to see more contributions, questions and answers from the community?

Bytecode vs lenguaje ensamblador
Bytecode es similar a lenguaje ensamblador en que no es un lenguaje de alto nivel, pero todavía es algo legible, a diferencia del lenguaje de máquina. Ambos pueden considerarse “lenguajes intermedios” que se encuentran entre el código fuente y el código de máquina. La principal diferencia entre los dos es que el código de bytes se genera para una máquina virtual (programa.), mientras que el lenguaje ensamblador se crea para un CPU (hardware).

Perdone profe, pero la defincion en los ultimos 2 parrafos no es correcta.

Al realizar la compilacion de un fichero, el compilador (JAVAC) y no la JVM, se encarga de convertir el codigo a Bytecode. Los ficheros (.class) resultantes son ejecutados por la JVM y traducidos a codigo maquina, para que luego ese codigo maquina, sea ejecutado por el procesador.

Saludos!

La JVM interpreta el bytecode en algo que cada sistema operativo puede entender

Muy interesante como puede llegar al mismo punto desde diferentes lenguajes. Desde luego, es muy poderosa la JVM.

La similitud entre ambos lenguajes, hacen que kotlin sea la nueva actualización de java, uno de los códigos base en la programación de multiplataforma, kotlin nace como la alternativa o como un hijo de todo lo aprendido por java.

Kotlin potencializa el código, ayudándolo a simplificar una sintaxis algo robusta y rígida en la programación con java.
Mejora la compilación y los tiempos de respuesta en la virtualización del su código fuente.

![]

Kotlin es un lenguaje de programación moderno, conciso y seguro, diseñado para ser interoperable con Java. Se utiliza principalmente para el desarrollo de aplicaciones móviles en Android, pero también es adecuado para backend y programación en la línea de comandos (CLI). Kotlin permite aplicar conceptos de programación funcional y maneja automáticamente los punteros y referencias de memoria a través del garbage collection, facilitando así el desarrollo de software robusto y eficiente.
La programación nativa se refiere al desarrollo de aplicaciones que utilizan directamente las herramientas y APIs del sistema operativo. En el contexto de Kotlin y la Java Virtual Machine (JVM), Kotlin permite que el código se ejecute de manera eficiente en múltiples plataformas, como Android, gracias a su interoperabilidad con Java. Esto significa que, aunque puedes programar en una forma más "nativa", la JVM facilita la portabilidad y el manejo de memoria a través de su garbage collection, eliminando muchos de los inconvenientes de lenguajes como C o C++.
Kotlin, al ser un lenguaje de programación que corre sobre la Java Virtual Machine (JVM), puede utilizarse con o sin frameworks. Si bien muchos desarrolladores optan por frameworks como Spring o Ktor para facilitar el desarrollo de aplicaciones, no es un requisito. Puedes programar en Kotlin utilizando sus características y bibliotecas estándar sin necesidad de un framework. Esto te proporciona flexibilidad en el desarrollo y la elección de las herramientas que mejor se adapten a tus necesidades.
![](https://static.platzi.com/media/user_upload/image-cd32af40-ef54-462f-af09-82bee7e9d790.jpg)
El grabage collector "solo" se encarga de elimininar los objetos que estan en memoria pero ya no estan referenciados, y no tiene nada que ver con el manejo de punteros.
La principal ventaja de que use la JVM, por encima de cualquier otra, es la portabilidad. Una vez que obtenemos el bytecode, el mismo puede ser ejecutado en cualquier sistema operativo con solo instalarle una JVM. Esta es la principal ventaja sobre un lenguaje compilado, este ultimo crea un ejecutable que es mucho mas veloz, pero que no es portable entre sistemas operativos.
Te has preguntado, como es que el bytecode generado por JVM es ejecutado finalmente por el procesador? Bueno aquí la respuesta: El bytecode generado por la **Java Virtual Machine (JVM)** es un conjunto de instrucciones que se ejecuta en la máquina virtual. Permíteme explicarte cómo funciona: 1. **Compilación a bytecode**: * Cuando compilas un programa Java, el **compilador** traduce el código fuente en **bytecode**. Este bytecode es independiente de la plataforma y se almacena en archivos `.class`. * Cada método en una clase Java se compila en una serie de instrucciones de bytecode. 2. **Carga de clases**: * Cuando ejecutas un programa Java, la JVM carga las clases necesarias en memoria. * La JVM interpreta el bytecode y lo ejecuta en tiempo de ejecución. 3. **Interpretación y ejecución**: * La JVM tiene un **intérprete** que lee las instrucciones de bytecode y las ejecuta. * El intérprete convierte las instrucciones en llamadas al sistema operativo o instrucciones específicas del procesador. 4. **Optimización Just-In-Time (JIT)**: * Para mejorar el rendimiento, la JVM utiliza una técnica llamada **compilación JIT**. * El JIT traduce partes del bytecode en código de máquina nativo durante la ejecución. * Esto permite que las instrucciones se ejecuten más rápido en el procesador. 5. **Ejecución en el procesador**: * El procesador ejecuta las instrucciones de máquina nativa generadas por el JIT. * Estas instrucciones son específicas de la arquitectura del procesador y se ejecutan directamente en la CPU. [**En resumen, el bytecode generado por la JVM se ejecuta mediante un proceso de interpretación y, en algunos casos, compilación JIT, antes de llegar al procesador para su ejecución**](https://www.javatpoint.com/java-bytecode)**.**
La maquina virtual el poder de estos lenguajes para garantizar interoperabilidad en diferentes S.operativos
Saludos
[Mega4D](https://togeldana.sardengeprek.ac.id/) merupakan situs judi online terpercaya di indonesia dengan permainan judi resmi 2024. Hanya dengan daftar Mega4D hari ini semua pemain dapat dengan mudah memainkan permainan yang telah tersedia dari situs judi mega4d resmi. Pastinya semua game seru yang tersedia oleh bandar Mega4D berkualitas gampang jackpot maxwin. <https://togeldana.id/>https://mega4d.my.id/ [**https://mega4d-dana.com/**](https://mega4d-dana.com/) <https://mega4d-dana.com/> <https://newschoolkaidan.com/> [**https://newschoolkaidan.com/**](https://newschoolkaidan.com/)
```js es una plataforma virtual capaz de ejecutar y interpretar funciones ```
Excelente, muchas gracias
👍👍👍

la JVM propicia la interoperabilidad entre distintos ecosistemas desde el punto de vista de sistemas operativos

Deberían por favor renovar este curso, haciendo una ruta de desarrollo movil y muchisima más profundización en el tema ¿porque aún no implementan nada de esto?

Sin la JVM nuestro código fuente no seria entendido por el sistema operativo de nuestras computadoras.

La JVM (Java Virtual Machine) se encarga de ejecutar el código de forma que funcione en cualquier dispositivo o sistema operativo.