En Java existen dos grandes categorías de tipos de datos: primitivos y referenciados. Comprender la diferencia entre ambos es esencial para programar correctamente.
1. Tipos de Datos Primitivos
Son los más básicos en Java, guardan el valor directamente en memoria.
| Tipo | Tamaño | Ejemplo | Uso |
|---|---|---|---|
byte |
8 bits | byte b = 100; |
Números pequeños (–128 a 127). |
short |
16 bits | short s = 2000; |
Números enteros un poco más grandes. |
int |
32 bits | int i = 100000; |
Enteros comunes (el más usado). |
long |
64 bits | long l = 10000000000L; |
Enteros grandes (nota la L al final). |
float |
32 bits | float f = 3.14f; |
Decimales de precisión simple (nota la f). |
double |
64 bits | double d = 3.141592; |
Decimales de precisión doble. |
char |
16 bits | char c = 'A'; |
Un carácter Unicode (‘a’, ‘1’, ‘?’). |
boolean |
1 bit | boolean v = true; |
Verdadero o falso (true/false). |
Ejemplo con todos los primitivos:
public class Primitivos {
public static void main(String[] args) {
byte b = 120;
short s = 32000;
int i = 123456;
long l = 12345678910L;
float f = 3.14f;
double d = 3.14159265359;
char c = 'J';
boolean vivo = true;
System.out.println("byte: " + b);
System.out.println("short: " + s);
System.out.println("int: " + i);
System.out.println("long: " + l);
System.out.println("float: " + f);
System.out.println("double: " + d);
System.out.println("char: " + c);
System.out.println("boolean: " + vivo);
}
}
2. Tipos de Datos Referenciados
Son objetos que apuntan a una dirección en memoria. No guardan el valor directo, sino una referencia al objeto.
- String → para texto:
String nombre = "Shayla";
- Arreglos (Arrays) → para almacenar varios valores juntos:
int[] numeros = {1, 2, 3}; - Clases y objetos propios → definidos por el programador:
Persona p = new Persona();
- Clases envoltorio (Wrappers) → versiones objeto de los primitivos:
Integer(paraint),Double(paradouble),Boolean(paraboolean),Character(parachar).
Diferencia entre Primitivos y Referenciados
int x = 5; // primitivo → guarda el 5 directamente Integer y = 5; // referenciado → objeto Integer que apunta al valor 5
En resumen, los primitivos son más rápidos y ocupan menos memoria, mientras que los referenciados permiten aprovechar métodos y comportamientos propios de los objetos.