Menu

¿Qué es Java? El lenguaje, la JVM y dónde se ejecuta

Qué es realmente Java, cómo la JVM permite que un mismo programa compilado se ejecute en cualquier sitio y qué tipo de software se construye con Java.

Esta página incluye editores ejecutables: edita, ejecuta y ve el resultado al instante.

Java en una frase

Java es un lenguaje de programación de tipado estático y orientado a objetos que se compila a bytecode y se ejecuta sobre la Máquina Virtual de Java (JVM). Esa única decisión de diseño -compilar a un formato intermedio neutral y luego ejecutarlo en una máquina virtual- es la razón por la que el mismo programa Java compilado se ejecuta sin cambios en Windows, macOS, Linux y más allá.

Aquí está el obligado primer programa. Puedes ejecutarlo aquí mismo:

Hay más ceremonia aquí que en un lenguaje de scripting, y es a propósito: Java prefiere la estructura explícita. Iremos desgranando cada parte de esto a lo largo de las próximas páginas.

Por qué importa la JVM

La mayoría de los lenguajes compilados convierten el código fuente directamente en código máquina para un procesador y un sistema operativo concretos. Un programa compilado para Windows no se ejecutará en un Mac. Java da un rodeo:

  1. javac compila tu código fuente .java en archivos .class que contienen bytecode: instrucciones para una máquina imaginaria, no para ninguna CPU real.
  2. La JVM de tu plataforma lee ese bytecode y lo ejecuta, traduciéndolo a instrucciones máquina nativas sobre la marcha.

Como cada plataforma tiene su propia JVM pero todas entienden el mismo bytecode, compilas una vez y ejecutas el resultado en cualquier lugar donde exista una JVM. Ese es el famoso lema: escribir una vez, ejecutar en cualquier parte.

La JVM no se limita a interpretar a ciegas. Un compilador just-in-time (JIT) observa qué código se ejecuta más y compila esas rutas calientes a código nativo optimizado, de modo que los programas Java de larga duración se acercan a la velocidad de los lenguajes totalmente compilados.

De tipado estático y orientado a objetos

Dos propiedades dan forma a cómo se ve y se siente el código Java.

Tipado estático significa que cada variable tiene un tipo conocido en tiempo de compilación, y el compilador comprueba tus tipos antes de que el programa siquiera se ejecute:

count es un int para siempre; asignarle "hello" no compilaría. Esto detecta toda una clase de errores pronto, a costa de escribir más al principio.

Orientado a objetos significa que Java organiza el código en clases: planos que agrupan datos y los métodos que actúan sobre ellos. Incluso el punto de entrada de arriba vive dentro de una class Main. Casi todo lo que escribes en Java vive dentro de una clase.

Para qué se usa Java

Java es uno de los lenguajes más desplegados del mundo. Lo encontrarás en:

  • Sistemas backend y empresariales: banca, seguros, grandes servicios web y cualquier cosa que necesite funcionar de forma fiable durante años.
  • Android: el lenguaje original de la plataforma, todavía central en el runtime de Android incluso junto a Kotlin.
  • Big data: Hadoop, Spark, Kafka y buena parte del ecosistema de ingeniería de datos se ejecutan sobre la JVM.
  • Escritorio e integrado: desde IDEs (IntelliJ, Eclipse) hasta terminales de punto de venta y tarjetas inteligentes.

Su reputación es de estabilidad, compatibilidad hacia atrás y una vasta biblioteca estándar, más que la de ser el lenguaje más conciso. El código escrito para Java hace años por lo general sigue funcionando hoy.

Java no es JavaScript

Vale la pena decirlo sin rodeos porque los nombres causan una confusión interminable: Java y JavaScript son lenguajes diferentes y sin relación. Comparten cuatro letras por motivos históricos de marketing y nada más que importe. Java es compilado, de tipado estático y se ejecuta en la JVM; JavaScript es de tipado dinámico y se ejecuta en los navegadores y en Node.js. Aprender uno no te enseña el otro.

Siguiente: Instalar Java

Para escribir y ejecutar Java en tu propia máquina necesitas un JDK (Java Development Kit): el compilador más la JVM más la biblioteca estándar. La siguiente página te guía por su instalación y por cómo confirmar que funciona.

Preguntas frecuentes

¿Para qué sirve Java?

Java mueve grandes sistemas de servidor y empresariales, aplicaciones de Android (a través del Android SDK y el runtime compartido con Kotlin), herramientas de big data como Hadoop y Spark, y un sinfín de aplicaciones de escritorio e integradas. Sus puntos fuertes son la estabilidad, una enorme biblioteca estándar y la JVM, que ejecuta el mismo programa compilado en cualquier sistema operativo.

¿Java es compilado o interpretado?

Ambas cosas. El compilador de Java (javac) convierte tu código fuente en bytecode independiente de la plataforma, y la JVM ejecuta después ese bytecode: primero lo interpreta y luego compila las rutas más usadas a código máquina nativo con un compilador just-in-time (JIT). Así que Java se compila a bytecode y luego se interpreta y se compila con JIT en tiempo de ejecución.

¿Java es lo mismo que JavaScript?

No: son lenguajes sin relación que comparten nombre por motivos históricos de marketing. Java es un lenguaje compilado y de tipado estático que se ejecuta en la JVM; JavaScript es un lenguaje de tipado dinámico que se ejecuta en los navegadores y en Node.js. Saber uno no significa que sepas el otro.

Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR