=============================================================================
===
JAVA - ESENCIALES BÁSICOS
=============================================================================
===
¿Qué es Java?
Java es un lenguaje de programación de alto nivel, orientado a objetos, compilado a bytecode y
ejecutado en la Máquina Virtual de Java (JVM). Fue creado por James Gosling en Sun
Microsystems, lanzado en 1995.
Filosofía "Write Once, Run Anywhere":
El mismo código compilado funciona en cualquier sistema con JVM (Windows, Mac, Linux,
Android).
Características principales:
- Orientado a objetos (clases, objetos, herencia, polimorfismo)
- Tipado estático y fuerte
- Manejo automático de memoria (recolector de basura)
- Multiproceso (threads)
- Gran ecosistema (Spring, Android, Maven)
=============================================================================
===
SINTAXIS BÁSICA Y VARIABLES
Estructura mínima de un programa:
public class MiPrograma {
public static void main(String[] args) {
[Link]("Hola mundo");
}
}
Comentarios:
// Comentario de una línea
/* Comentario
de múltiples líneas */
/** Comentario de documentación (Javadoc) */
Variables (deben declarar tipo):
String nombre = "Ana"; // String (cuidado: la S mayúscula)
int edad = 25; // int (entero)
double altura = 1.65; // double (decimal)
boolean activo = true; // boolean
Tipos de datos primitivos (guardan valor directamente):
byte -> 8 bits (-128 a 127)
short -> 16 bits
int -> 32 bits (más común)
long -> 64 bits (requiere L al final: 100L)
float -> 32 bits (requiere f: 3.14f)
double -> 64 bits (más común para decimales)
char -> 16 bits (un solo carácter: 'A')
boolean -> true o false
Tipos de datos por referencia (guardan dirección de memoria):
String (cadenas), arrays, clases, interfaces
Constantes (palabra clave final):
final double PI = 3.1416;
// PI = 3.14 ERROR: no se puede modificar
Entrada y salida por consola:
import [Link];
public class Entrada {
public static void main(String[] args) {
Scanner scanner = new Scanner([Link]);
[Link]("¿Cómo te llamas? ");
String nombre = [Link]();
[Link]("¿Cuántos años tienes? ");
int edad = [Link]();
[Link]("Hola " + nombre + ", tienes " + edad + " años");
[Link]();
=============================================================================
===
ESTRUCTURAS DE CONTROL
Condicional if / else if / else:
int edad = 18;
if (edad < 12) {
[Link]("Niño");
} else if (edad < 18) {
[Link]("Adolescente");
} else {
[Link]("Adulto");
Switch (múltiples casos):
int dia = 3;
String nombreDia;
switch(dia) {
case 1:
nombreDia = "Lunes";
break;
case 2:
nombreDia = "Martes";
break;
case 3:
nombreDia = "Miércoles";
break;
default:
nombreDia = "Día inválido";
[Link](nombreDia); // Miércoles
Switch moderno (Java 14+):
String resultado = switch(dia) {
case 1 -> "Lunes";
case 2 -> "Martes";
case 3 -> "Miércoles";
default -> "Día inválido";
};
Bucle for clásico:
for (int i = 0; i < 5; i++) {
[Link](i); // 0,1,2,3,4
Bucle for-each (para arrays y colecciones):
int[] numeros = {1, 2, 3, 4, 5};
for (int num : numeros) {
[Link](num);
Bucle while:
int contador = 0;
while (contador < 3) {
[Link](contador);
contador++;
Bucle do-while (ejecuta al menos una vez):
int x = 10;
do {
[Link]("Se ejecuta una vez");
} while (x < 5);
break y continue:
for (int i = 0; i < 5; i++) {
if (i == 2) continue; // Salta el 2
if (i == 4) break; // Termina en 4
[Link](i); // 0,1,3
=============================================================================
===
ARRAYS Y COLECCIONES BÁSICAS
Arrays (tamaño fijo):
// Declaración e inicialización
int[] numeros = new int[5]; // {0,0,0,0,0}
numeros[0] = 10;
numeros[1] = 20;
// Declarar con valores iniciales
String[] nombres = {"Ana", "Luis", "Carlos"};
// Acceder por índice
[Link](nombres[0]); // Ana
// Recorrer array
for (int i = 0; i < [Link]; i++) {
[Link](nombres[i]);
// Longitud del array
[Link]([Link]); // 5
ArrayList (tamaño dinámico, más flexible):
import [Link];
ArrayList<String> frutas = new ArrayList<>();
[Link]("manzana");
[Link]("pera");
[Link]("plátano");
[Link]([Link](0)); // manzana
[Link](1); // elimina "pera"
[Link]([Link]()); // 2
// Recorrer ArrayList
for (String fruta : frutas) {
[Link](fruta);
HashMap (mapa clave-valor):
import [Link];
HashMap<String, Integer> edades = new HashMap<>();
[Link]("Ana", 25);
[Link]("Luis", 30);
[Link]("Carlos", 28);
[Link]([Link]("Ana")); // 25
// Recorrer HashMap
for (String nombre : [Link]()) {
[Link](nombre + " tiene " + [Link](nombre) + " años");
=============================================================================
===
CLASES, OBJETOS Y MÉTODOS
Clase básica (molde para crear objetos):
public class Persona {
// Atributos (propiedades)
private String nombre;
private int edad;
// Constructor (se llama al crear un objeto)
public Persona(String nombre, int edad) {
[Link] = nombre; // this se refiere al objeto actual
[Link] = edad;
// Métodos (comportamientos)
public void saludar() {
[Link]("Hola, soy " + nombre);
public int getEdad() {
return edad;
public void setEdad(int nuevaEdad) {
if (nuevaEdad > 0) {
[Link] = nuevaEdad;
Uso de la clase (crear objetos):
public class Main {
public static void main(String[] args) {
// Crear un objeto
Persona persona1 = new Persona("Ana", 25);
[Link](); // Hola, soy Ana
[Link]([Link]()); // 25
// Modificar atributo con método setter
[Link](26);
[Link]([Link]()); // 26
Métodos estáticos (pertenecen a la clase, no a los objetos):
public class Calculadora {
public static int sumar(int a, int b) {
return a + b;
// Se llama sin crear objeto:
int resultado = [Link](3, 5); // 8
Ejemplo completo:
public class Main {
public static void main(String[] args) {
// Array de objetos
Persona[] personas = {
new Persona("Ana", 25),
new Persona("Luis", 30),
new Persona("Carlos", 28)
};
int sumaEdades = 0;
for (Persona p : personas) {
sumaEdades += [Link]();
[Link]();
[Link]("Promedio de edad: " + (sumaEdades / [Link]));
=============================================================================
===
FIN DEL DOCUMENTO JAVA
=============================================================================
===