Ir al contenido
wannacode

Qué es Java

En resumen: Java es un lenguaje de programación para servidores, Android y sistemas grandes: el código se compila a bytecode, y la JVM lo ejecuta en cualquier sistema.

Problema

Por qué Java

Hay cientos de lenguajes de programación. Cada uno sirve para algo, pero no todos sirven igual de bien para todo. Antes de dedicar meses a uno de ellos, es justo saber dónde lo vas a usar.

Java es uno de los lenguajes más usados para programas que funcionan durante mucho tiempo sin detenerse:

  • los servidores de bancos, tiendas en línea y sistemas de reservas: la parte que no ves, pero que lleva las cuentas y los pedidos;
  • Android: durante mucho tiempo fue el lenguaje principal de las aplicaciones para Android. Hoy a menudo se escribe en Kotlin, que funciona sobre la misma base y puede usar código Java;
  • sistemas grandes de empresas e instituciones que construyen muchas personas a lo largo de muchos años;
  • Minecraft: la versión original del juego (Java Edition) está escrita en Java.

Java existe desde 1995. Por eso hay una enorme cantidad de bibliotecas ya hechas, documentación y respuestas a las preguntas con las que te vas a encontrar.

La idea

Del texto al programa

El programa que escribes es texto normal en un archivo. Aquí tienes un programa completo:

Main.java
public class Main {
public static void main(String[] args) {
System.out.println("El pedido n.º 1024 ha sido aceptado.");
}
}
Salida
El pedido n.º 1024 ha sido aceptado.

Por ahora no te preocupes por las palabras que hay en él. Llegaremos a ellas en la lección «Tu primer programa». Aquí importa otra cosa: el procesador de la computadora no entiende este texto. Algo tiene que traducirlo.

  1. Escribes el código fuente en un archivo llamado Main.java.
  2. El compilador, javac, revisa el texto en busca de errores y lo traduce a bytecode: un archivo llamado Main.class. El bytecode no está hecho para ningún procesador en concreto.
  3. La JVM (Java Virtual Machine, la máquina virtual de Java) lee el bytecode y lo ejecuta en tu computadora.

Hay una JVM para Windows, macOS y Linux. Por eso el mismo Main.class funciona en todos ellos sin ningún cambio. Esto se llama independencia de la plataforma.

public class Main {
public static void main(String[] args) {
System.out.println("El pedido n.º 1024 ha sido aceptado.");
}
}
Paso a paso, en palabras
  1. Escribes el código fuente: texto normal en el archivo Main.java.
  2. El compilador javac lee el texto y lo revisa en busca de errores.
  3. Sale bytecode, el archivo Main.class. No está hecho para ningún procesador en concreto.
  4. El mismo Main.class va sin cambios a Windows, macOS y Linux.
  5. La JVM de cada sistema ejecuta el bytecode. La salida es la misma.
Más precisamente, para curiosos
  • La JVM no traduce todo el programa por adelantado. Traduce partes de él a código máquina mientras el programa se ejecuta, y optimiza más las partes que se ejecutan más a menudo. Esto se llama compilación JIT (just-in-time, «justo a tiempo»).
  • La memoria. Cada programa ocupa memoria para sus datos. En lenguajes como C, el programador libera la memoria que ya no hace falta, y si se le olvida o se equivoca, el programa empieza a ocupar cada vez más memoria o se cae. Java lo hace por ti: el recolector de basura (garbage collector) encuentra los datos a los que el programa ya no puede llegar y libera su memoria.

La idea

Qué aprenderás

El curso está formado por módulos. Cada módulo usa solo cosas de los anteriores:

  1. Fundamentos del lenguaje: variables, entrada y salida, cálculos, condiciones, bucles, arrays, texto.
  2. Métodos: código que escribes una vez y llamas muchas veces.
  3. Clases y objetos: tus propios tipos, como Order o Student.
  4. Herencia y polimorfismo: lo que comparten varios tipos, en un solo lugar.
  5. Errores y excepciones: qué hace el programa cuando algo sale mal.
  6. Texto y archivos: trabajar con cadenas, patrones de búsqueda (regex) y archivos.
  7. Colecciones: listas, pila, cola, HashMap.
  8. Java moderno: expresiones lambda, Stream y las novedades del lenguaje.
  9. Programas del mundo real: pruebas, hilos, red, bases de datos.

Fuera del camino principal hay juegos y proyectos: programas completos que construyes paso a paso.

Las dos características de Java que se suelen destacar también están en el curso. Los hilos (varias cosas que el programa hace a la vez) están en «Programas del mundo real». La reflexión (reflection: un programa que examina sus propias clases mientras se ejecuta) llega en los últimos módulos.

La idea

Cómo se aprende aquí

Cada lección es una serie de tarjetas, una idea por tarjeta. Normalmente empieza con un problema de la práctica y después muestra qué pasa en realidad, a menudo con una animación junto al código. Luego viene una pequeña tarea: predecir la salida, completar lo que falta, encontrar el error. Al final hay un ejercicio que resuelves en tu propio editor y un test corto.

Tu progreso se guarda en el navegador: la lección continúa desde la tarjeta a la que llegaste.

El mapa de todo el curso está en la página principal del curso.

No te saltes los ejercicios. Leer código y escribir código son habilidades distintas, y la segunda solo se consigue escribiendo.

La idea

Los errores son parte del trabajo

Tus primeros programas a menudo no compilarán. Se te olvidará un punto y coma, unas comillas o una llave, y el compilador se negará.

No es una nota sobre ti. El mensaje de error está para ayudar: te dice en qué línea está el problema y cuál es. Los programadores con experiencia también ven estos mensajes todos los días. La diferencia es que han aprendido a leerlos con calma. Empezaremos a leerlos en la primera lección con código.

Si algo no sale durante mucho rato, déjalo y vuelve un poco más tarde. A menudo ves el error enseguida cuando lo miras de nuevo.

En resumen

En resumen

  • Java funciona en servidores, en Android, en sistemas grandes y en Minecraft.
  • El código fuente (Main.java) lo compila javac a bytecode (Main.class), y la JVM lo ejecuta en cualquier sistema.
  • La memoria la libera automáticamente el recolector de basura.
  • El curso está formado por módulos, y cada lección por tarjetas. Los ejercicios se hacen en tu propio editor.
  • Un mensaje de error es una ayuda, no una nota.

Lo siguiente es preparar tu computadora: qué instalar para poder ejecutar tu primer programa.

Creado por Ivo Gergov como parte de la campaña de Evo Tech por una educación accesible en programación ·