0Pricing
Java Academy · Lección

Tipos primitivos frente a wrapper

Integer, Double, Boolean y otros

Tipos primitivos frente a wrapper es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 4 lecciones en total.

Dos mundos de valores

Java tiene tipos primitivos como int, double y boolean, que almacenan directamente valores sin procesar. También tiene clases envoltorio como Integer, Double y Boolean, que encapsulan esos valores dentro de objetos.

Los primitivos son rápidos y ligeros. Los envoltorios son objetos completos que pueden almacenarse en colecciones y pueden ser null.

Los ocho tipos primitivos

Java define exactamente ocho tipos primitivos:

  • byte, short, int y long para números enteros
  • float y double para números decimales
  • char para un solo carácter
  • boolean para verdadero o falso

Cada uno tiene una clase envoltorio correspondiente en el paquete java.lang.

Nombres de los envoltorios correspondientes

En la mayoría de los casos, el nombre del envoltorio se obtiene escribiendo el primitivo con mayúscula inicial, pero hay dos excepciones:

  • int se convierte en Integer
  • char se convierte en Character
  • boolean se convierte en Boolean, double en Double, y así sucesivamente

Imprimamos algunos envoltorios.

public class Main {
    public static void main(String[] args) {
        Integer count = 42;
        Double price = 9.99;
        Boolean active = true;
        Character grade = 'A';
        System.out.println(count);
        System.out.println(price);
        System.out.println(active);
        System.out.println(grade);
    }
}

Los envoltorios son objetos

Un primitivo contiene un valor. Un envoltorio es una referencia a un objeto, por lo que puede no apuntar a nada mediante null.

Esto hace que los envoltorios sean útiles cuando puede faltar un valor, como en una columna de base de datos que permite NULL.

public class Main {
    public static void main(String[] args) {
        Integer missing = null;
        int present = 5;
        System.out.println(missing);
        System.out.println(present);
    }
}

Constantes útiles

Las clases envoltorio exponen constantes prácticas. Integer.MAX_VALUE y Integer.MIN_VALUE proporcionan los valores máximo y mínimo de int.

Esto es mucho más sencillo que memorizar los números.

public class Main {
    public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Long.MAX_VALUE);
    }
}

Métodos auxiliares

Las clases envoltorio también son conjuntos de métodos auxiliares estáticos. Por ejemplo, Integer.toBinaryString muestra un número en base 2 y Integer.max devuelve el mayor de dos valores.

public class Main {
    public static void main(String[] args) {
        System.out.println(Integer.toBinaryString(10));
        System.out.println(Integer.max(7, 3));
        System.out.println(Integer.toHexString(255));
    }
}

Por qué las colecciones necesitan envoltorios

Los genéricos de Java solo funcionan con objetos, no con primitivos. No puede escribir List<int>.

En su lugar, utilice List<Integer>. El envoltorio permite que el valor primitivo encaje en el mundo de objetos que requieren las colecciones.

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(10);
        numbers.add(20);
        System.out.println(numbers);
    }
}

Comparar valores de envoltorios

Para comparar el valor numérico contenido en dos envoltorios, utilice .equals() o .compareTo(), no los operadores matemáticos directamente sobre los objetos.

compareTo devuelve un número negativo, cero o un número positivo.

public class Main {
    public static void main(String[] args) {
        Integer a = 100;
        Integer b = 200;
        System.out.println(a.equals(b));
        System.out.println(a.compareTo(b));
    }
}

Memoria y rendimiento

Los primitivos utilizan menos memoria y se ejecutan más rápido porque no tienen la sobrecarga de un objeto. Un solo int ocupa únicamente 4 bytes de datos sin procesar.

Un objeto envoltorio contiene información adicional de cabecera. En bucles ajustados que procesen millones de valores, prefiera los primitivos.

Los valores predeterminados son diferentes

Un campo primitivo no inicializado tiene como valor predeterminado un valor similar a cero: int es 0 y boolean es false.

Un campo envoltorio no inicializado tiene como valor predeterminado null. Esta diferencia es importante cuando posteriormente intenta utilizar el valor.

public class Main {
    static int primitiveField;
    static Integer wrapperField;

    public static void main(String[] args) {
        System.out.println(primitiveField);
        System.out.println(wrapperField);
    }
}

Elegir entre ambos

Una regla sencilla: utilice primitivos de forma predeterminada por rendimiento y claridad. Cambie a un envoltorio cuando necesite un elemento de una colección, un tipo genérico o la posibilidad de representar un valor ausente mediante null.

Comprobación rápida

Compruebe lo que ha aprendido sobre los primitivos y los envoltorios.

Repaso

Ha aprendido la diferencia entre primitivos y envoltorios:

  • Ocho primitivos se corresponden con ocho clases envoltorio, como Integer y Double
  • Los envoltorios son objetos, pueden ser null y encajan en las colecciones
  • Los primitivos son más rápidos y ligeros, por lo que debe utilizarlos de forma predeterminada
  • Las clases envoltorio también proporcionan constantes y métodos auxiliares útiles

Preguntas frecuentes

¿La lección «Tipos primitivos frente a wrapper» es gratis?

Sí — el texto completo de «Tipos primitivos frente a wrapper» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Tipos primitivos frente a wrapper»?

Integer, Double, Boolean y otros Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Java Academy?

No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Tipos primitivos frente a wrapper»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Java Academy?

Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Tipos primitivos frente a wrapper
  2. Autoboxing y unboxing
  3. Parsing y Valueof
  4. Problemas del autoboxing
← Volver a Java Academy