TutorJava Nivel Básico: tutorial completo Java 21

Java es un lenguaje fuertemente tipado: cada variable tiene un tipo declarado en tiempo de compilación. Conocer bien los tipos primitivos y la clase String es fundamental para escribir código correcto y eficiente.

Tipos primitivos

Java tiene ocho tipos primitivos que almacenan el valor directamente (no son objetos):

Tipo

Tamaño

Rango

Uso típico

byte

8 bits

-128 a 127

Datos binarios, protocolos

short

16 bits

-32768 a 32767

Poco común

int

32 bits

±2.1 mil millones

Enteros en general

long

64 bits

±9.2 × 10¹⁸

Timestamps, IDs grandes

float

32 bits IEEE 754

~6-7 dígitos significativos

Raramente (prefiere double)

double

64 bits IEEE 754

~15-16 dígitos significativos

Cálculos en coma flotante

char

16 bits Unicode

'' a '￿'

Caracteres individuales

boolean

JVM-dependiente

true / false

Condiciones

Para dinero y valores exactos, nunca uses float ni double. Usa java.math.BigDecimal.

Autoboxing y clases envoltorio (Wrapper)

Cada primitivo tiene una clase envoltorio (Integer, Long, Double, Boolean…). Java convierte automáticamente entre ambos (autoboxing/unboxing):

int primitivo = 42;
Integer objeto = primitivo;          // autoboxing
int deVuelta = objeto;               // unboxing

List lista = new ArrayList<>();
lista.add(10);                        // autoboxing automático
int valor = lista.get(0);            // unboxing automático

Cuidado: el unboxing de un null lanza NullPointerException.

String: inmutable y eficiente

String en Java es inmutable: una vez creado, no se puede modificar. Cada operación que parece modificar un String en realidad crea uno nuevo:

String s = "Hola";
s = s + " Mundo";    // crea un nuevo String; el "Hola" original se descarta

Los métodos de String más usados:

String texto = "  Java 21 es genial  ";

texto.length()                    // 21
texto.trim()                      // "Java 21 es genial"
texto.toUpperCase()               // "  JAVA 21 ES GENIAL  "
texto.toLowerCase()               // "  java 21 es genial  "
texto.contains("21")              // true
texto.startsWith("  Java")        // true
texto.replace("genial", "potente")// "  Java 21 es potente  "
texto.split(" ")                  // array de palabras
texto.charAt(2)                   // 'J'
texto.substring(2, 6)             // "Java"
texto.strip()                     // "Java 21 es genial" (mejor que trim() con Unicode)

String.valueOf(42)                // "42" (convierte primitivo a String)
Integer.parseInt("42")           // 42 (String a int)

Text Blocks (Java 15+)

Los text blocks permiten escribir cadenas multilínea de forma legible, sin escapes:

String json = """
        {
            "nombre": "Juan",
            "edad": 30,
            "ciudad": "Madrid"
        }
        """;

String html = """
        
            
                

Hola, %s """.formatted("Java 21");

StringBuilder: concatenar eficientemente

Cuando concatenas muchos Strings en un bucle, usa StringBuilder en lugar del operador +. Cada + crea un objeto nuevo; StringBuilder modifica el buffer internamente:

StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
    sb.append("elemento").append(i).append(", ");
}
String resultado = sb.toString();

var: inferencia de tipos (Java 10+)

La palabra clave var permite al compilador inferir el tipo de una variable local. Solo funciona en variables locales con inicializador:

var nombre = "Java";           // String
var lista = new ArrayList();  // ArrayList
var numero = 42;               // int

// NO funciona como atributo de clase, parámetro o tipo de retorno

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP