CodeGym /Cursos /JAVA 25 SELF /Compilador y comentarios

Compilador y comentarios

JAVA 25 SELF
Nivel 1 , Lección 5
Disponible

1. Compilador de Java

Por cierto, escucharás más de una vez que la ventaja indiscutible de Java frente a otros lenguajes —es que es multiplataforma. ¿Qué es eso y con qué se come? Empecemos desde lejos.

El caso es que el ordenador solo sabe ejecutar órdenes muy simples.

Para los perros hay órdenes «Junto», «Pata» y otras; al oírlas, el perro hace algo importante. En el ordenador, el papel de esas órdenes lo desempeñan los números: cada instrucción está codificada por un número (también llamado código de máquina).

Escribir un programa como una secuencia de números es muy difícil, por eso la gente inventó los lenguajes de programación y los compiladores. Este tipo de lenguaje, por un lado, es comprensible para las personas y, por otro, para el compilador. Un compilador es un programa especial que traduce el texto de un programa, escrito en un lenguaje de programación, a un conjunto de códigos de máquina.

Normalmente, el programador escribe un programa en un lenguaje de programación y luego ejecuta el compilador, que, a partir de los archivos con el código escritos por el programador, crea un único archivo con código de máquina: el programa final (compilado).

  • Programa en lenguaje C++
  • Compilador
  • Programa, compuesta por códigos de máquina
Etapas de compilación para el lenguaje C++

El programa resultante puede ejecutarse inmediatamente en el ordenador. La desventaja de este enfoque es que el código del programa obtenido depende mucho del procesador y del sistema operativo. Un programa compilado para Windows no funcionará en un teléfono con Android.

Si has escrito un programa para Android, entonces en el sistema operativo Windows ¡no se ejecutará!

Pero Java tiene un enfoque mucho más innovador.

  • Programa en lenguaje Java
  • Compilador de Java
  • Programa, compuesta por códigos especiales (bytecode)
  • Java VM
  • Programa, compuesta por códigos de máquina
Etapas de compilación para el lenguaje Java

El compilador de Java no compila todas las clases en un único programa de código de máquina. En su lugar, compila cada clase por separado, y no a código de máquina, sino a un código intermedio especial (bytecode). La compilación a código de máquina se realiza al ejecutar el programa.

¿Y quién compila el programa a código de máquina cuando se ejecuta?

Para ello existe un programa especial llamado JVM (Java Virtual Machine) — Máquina virtual de Java. Primero se inicia, y luego — el programa compuesto por bytecode. Y la JVM, antes de ejecutar el programa necesario, lo compila a código de máquina.

Si tienes un procesador potente que admite un mayor conjunto de instrucciones de máquina, durante la «segunda compilación» se generará código de máquina teniendo en cuenta tu procesador y tu SO. Por eso Java a veces es más rápido que C++, que se compila inmediatamente a código de máquina y solo puede utilizar las instrucciones de procesador más comunes.

2. Errores típicos durante la compilación

La velocidad y la optimización del código, por ahora, no nos importan demasiado; lo que sí importa es que el compilador verifica tu programa en busca de errores. Comprueba la corrección del código y no lo dejará pasar si encuentra incluso un error pequeño.

Ejemplo de error:

Intentas asignar un número a una variable que solo puede almacenar texto.

String userName = 42; // ¡Ups! No se puede hacer eso.

El compilador mostrará inmediatamente un error indicando que los tipos no coinciden: Cannot implicitly convert type 'int' to 'string'.

Otro ejemplo — un error tipográfico en la instrucción println:

System.out.printline("¡Hola!"); // Error en el nombre del método

El compilador dirá: «No existe tal método — ¡revisa la sintaxis!»

¿Cómo leer los errores?

La mayoría de los compiladores indican dónde está el error en el código e incluso, a veces, proponen opciones de corrección. No tengas miedo de los errores: cada uno de ellos es un paso hacia la iluminación y derrotar a tu «jefe» interior.

3. Comentarios

Imagina: estás escribiendo un programa complejo. Todo funciona, ¡eres un genio! Pero un mes después abres ese mismo código y... no entiendes nada. Un par de líneas de código aquí, una variable rara allá. Solo piensas: «¡Esto lo ha escrito cualquiera, menos yo!». Ahí es donde los comentarios te salvan.

Los comentarios son como notas en los márgenes de un libro de texto o etiquetas en la nevera («Cerveza. No beber. ¡Para la mañana!»). El compilador los ignora y las personas — justo al revés. Los comentarios permiten explicar el sentido del código, marcar detalles importantes e incluso «desactivar» fragmentos del programa sin borrarlos.

Importante: ningún compilador lee tus comentarios; ¡se ignoran por completo!

Comentarios de una sola línea

En Java hay dos tipos de comentarios: de una sola línea y multilínea. Los de una sola línea comienzan con dos barras // y continúan hasta el final de la línea. Todo lo que esté después de // se considera un comentario y se ignora por completo por el compilador.

Ejemplo:

System.out.println("¡Hola, mundo!"); 	// Esto imprime el saludo en pantalla

Aquí // Esto imprime el saludo en pantalla es un comentario. Si en el código no está claro para qué sirve una línea, ¡escríbelo así!

Otro ejemplo:

int x = 42; 	// Valor de la edad del programador

También se pueden escribir comentarios de una sola línea en líneas separadas:

// Inicialización de la variable con el nombre de usuario
String userName = "John";

Casi como acotaciones en un guion: el comentario explica el qué y el porqué.

Comentarios multilínea

¿Y si tienes mucho que contar? ¿Una historia de verdad? Para eso están los comentarios multilínea, que comienzan con /* y acaban con */. Todo lo que haya entre esos símbolos se ignora por el compilador, incluso si ocupa varias líneas.

Ejemplo:

/*
  Aquí mostramos el nombre del usuario en pantalla.
  Si el nombre no está presente, escribiremos "Invitado".
*/
System.out.println("Introduzca su nombre:");

O así:

int age = 18; /* Valor inicial de la edad
                 para un usuario nuevo */

Atención: no se pueden anidar comentarios multilínea unos dentro de otros. No intentes ser más listo que el compilador: no funcionará.

Ilustración:

Tipo Sintaxis Ejemplo
De una sola línea
// comentario
int x = 1; // explicación
Multilínea
/* lo que sea aquí */
/* aquí puedes explicar todo lo que quieras */

4. Ejemplos de la vida real

«Desactivar» una línea de código:

A veces quieres no ejecutar temporalmente un fragmento de código. Los comentarios son perfectos para eso:

// System.out.println("Texto que no es necesario temporalmente");

La línea se queda, pero el compilador no la «ve».

Marcas TODO y FIXME

Los programadores también son personas, y a veces hace falta recordarse a uno mismo que el código aún no está terminado o que hay un bug. Para ello se suele escribir:

// TODO: añadir comprobación de entrada vacía
// FIXME: esta función calcula mal la suma

¡Muchos editores e IDE incluso resaltan esas palabras!

Los programadores bromean

// No me hago responsable de este código. Me obligaron a escribirlo contra mi voluntad.
// Querido yo_del_futuro: ¡por favor, perdóname por este código.
// Si vuelvo a ver algo así, tendré que empezar a llevar un arma al trabajo.
// Si esta condición alguna vez se cumple, por favor avísame al tel. xxx-xxx-xxx a cambio de una recompensa.
// Querido programador:
//
// Cuando termines de «optimizar» esta subrutina
// y entiendas qué gran error fue hacerlo,
// por favor incrementa el contador de abajo como advertencia
// para el siguiente chico:
//
// number_of_hours_spent_here = 42
// Cuando empecé a escribir esto, solo Dios y yo entendíamos lo que estaba haciendo. 
// Ahora solo queda Dios.
// A veces me parece que el compilador ignora todos mis comentarios
// Dedico todo mi código, todo mi trabajo, a mi esposa Darlin, que 
// tendrá que mantenerme a mí, a nuestros tres hijos y al perro cuando 
// esto llegue a producción.

Sí, los comentarios pueden ser muy divertidos. Al fin y al cabo los escriben personas de carne y hueso.

1
Cuestionario/control
Comandos y primer programa, nivel 1, lección 5
No disponible
Comandos y primer programa
Comandos y primer programa
Comentarios (3)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Leo Morichetti Nivel 2, Argentina
9 abril 2026
No se comentó la línea con error: String text = 123; Coméntala anteponiendo //. La compilación falla por la línea: String text = 123; Coméntala para que el programa compile. jjakjjkaas pero qué hago entonces
BlackFoxAB Nivel 2, Argentina
25 enero 2026
El ejercicio "Correccion de errores" hagas lo que hgas sale error ..
Martino Blasich Nivel 2, Mexico
21 enero 2026
Buenas, el ejercicio de "Correccion de errores" no tiene solución posible