Tipos en Java

Tipos en Java

En este tutorial vamos a hablar de varios tipos en Java.

Básicamente tenemos dos categorías de tipos.

Tenemos tipos primitivos para reservar valores simples.

Y tipos no primitivos o tipos de referencia para reservar objetos complejos.

Tipos primitivos

Así que en la categoría de tipos primitivos tenemos varios tipos.

Tenemos byte, short, int, long para números enteros.

Tenemos float y double para números con punto decimal.

Tenemos char para caracteres.

Y boolean para valores verdaderos o falsos.

byte

byte toma 1 byte de memoria.

Con 1 byte podemos reservar valores de -128 a 127.

Más bytes, más números

short toma 2 bytes y permite valores hasta 32,000.

int toma 4 bytes y permite valores hasta 2 billones.

long toma 8 bytes y permite números aún más grandes.

Enteros vs decimales

Todos estos tipos son para números sin punto decimal.

Si quieres un número con punto decimal, debes usar float o double.

float usa 4 bytes, double usa 8 bytes.

Otros tipos

char reserva un solo carácter, como a, b, c.

Toma 2 bytes, así que soporta letras internacionales.

boolean reserva valores true o false.

Ejemplo: edad con byte

Antes usábamos un int para reservar la edad.

Pero no necesitamos 4 bytes para guardar una edad.

Con 1 byte es suficiente.

Código: byte

public class Type1 {
    public static void main(String[] args) {
        byte MiEdad=40;
        System.out.println(MiEdad);
    }
}

Foco: declaración

public class Type1 {
    public static void main(String[] args) {
        byte MiEdad=40;
        System.out.println(MiEdad);
    }
}

Aquí declaramos la variable y le asignamos un valor inicial.

Foco: uso de la variable

public class Type1 {
    public static void main(String[] args) {
        byte MiEdad=40;
        System.out.println(MiEdad);
    }
}

Aquí usamos la variable y mostramos su valor.

Ejemplo: contador de vistas

Ahora veámos otro ejemplo.

Queremos reservar el número de veces que un video de YouTube ha sido visto.

Código: int

public class Type1 {
    public static void main(String[] args) {
        byte MiEdad=40;
        int contador_vistas = 1234567;
    }
}

Buenas prácticas

Siempre usa nombres significativos.

Evita nombres como v, v1 o n.

Los nombres descriptivos ayudan a entender el código.

Números grandes y underscore

En Java podemos usar _ para separar cada 3 dígitos.

Esto hace los números más legibles.

Código con underscore

public class Type1 {
    public static void main(String[] args) {
        byte MiEdad=40;
        int contador_vistas = 1234567;
         System.out.println(contador_vistas);
    }
}

Código con underscore

public class Type1 {
    public static void main(String[] args) {
        byte MiEdad=40;
        int contador_vistas = 1_123_467;
        System.out.println(contador_vistas);
    }
}

Cuando int no alcanza

int permite hasta 2 billones.

Pero ¿qué pasa si tenemos 3 billones?

Aparece un error: número demasiado grande.

¿Por qué ocurre?

Java interpreta los números como int por defecto.

Aunque la variable sea long, el valor sigue siendo visto como int.

Código con long (error)

public class Type1 {
    public static void main(String[] args) {
        byte MiEdad=40;
        long contador_vistas = 1_123_467;
        System.out.println(contador_vistas);
    }
}

Solución: sufijo L

Debemos añadir un sufijo L.

Es mejor usar L mayúscula.

Código correcto con long

public class Type1 {
    public static void main(String[] args) {
        byte MiEdad=40;
        long contador_vistas = 1_123_467L;
        System.out.println(contador_vistas);
    }
}

Números decimales

Los números con punto decimal son double por defecto.

Código con double

public class Type1 {
    public static void main(String[] args) {
        byte MiEdad=40;
        long contador_vistas = 1_123_467L;
        double price=10.99;
        System.out.println(contador_vistas);
    }
}

Problema con float

Si cambiamos a float, aparece un error.

Java sigue viendo el número como double.

Código correcto con float

public class Type1 {
    public static void main(String[] args) {
        byte MiEdad=40;
        long contador_vistas = 1_123_467L;
        float price=10.99f; //aca sale un error 
        si no le pone la f (se puede mayúscula)
        System.out.println(contador_vistas);
    }
}

char y boolean

char representa un solo carácter y va entre comillas simples.

String usa comillas dobles.

boolean usa true o false.

Ejemplo completo

public class Type1 {
    public static void main(String[] args) {
        byte MiEdad=40;
        long contador_vistas = 1_123_467L;
        float price=10.99f; //aca sale un error si no le pone la f (se puede mayúscula)
        char letter= 'A';
        boolean esElegible = false; 
        System.out.println(contador_vistas);
    }
}

Palabras reservadas

Las palabras en naranja son palabras clave reservadas.

Ejemplos: public, static, void, class, package.

No podemos usarlas para nombrar variables, clases o métodos.