Listado completo de tutoriales

68 - Tipos de datos primitivos y clases de envoltura en Java


Hemos estado utilizando en todos los conceptos anteriores la mayoría de datos primitivos que provee Java, ahora los enumeraremos a todos.

Recordomos que los tipos de datos primitivos son aquellos que almacenan directamente el valor, a diferencia de los tipos de datos referencia que almacenan la dirección de memoria donde se almacena el dato (los objetos son tipo de datos referencia)

Los tipos de datos primitivos los podemos agrupar en:

Tipos enteros

Según el valor entero máximo a almacenar podemos elegir entre:

  • byte: -128 a 127
  • short: -32768 a 32767
  • int: –2147483648 a 2147483647
  • long: –9223372036854775808 a 9223372036854775807

Imaginemos que tenemos que definir un array de 10000 valores enteros. La elección del tipo entero va a ser importante, teniendo en cuenta que un byte ocupa un 1 byte, un short 2 bytes, un int ocupa 4 bytes y un long ocupa 8 bytes.

Si vamos a almacenar en el array edades por ejemplo, lo más conveniente será utilizar el tipo byte y no long.

Tipos reales

Tipo lógico

  • boolean: puede almacenar solo alguno de dos valores (true/false)

Tipo caracter

  • char: puede almacenar un único carácter Unicode de 16 bits

Para cada uno de los tipos de datos primitivos existen una clase de envoltura asociada:

Tipo primitivoClase de envoltura
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter

Problema

Imprimir los valores máximos y mínimos que pueden almacenar cada tipo de dato primitivo numéricos. Emplear las clases de envoltura para recuperar dichos valores.

Programa:

public class PruebaDatosPrimitivos {

    public static void main(String[] args) {
        System.out.println("Máximo y mínimo valor para un tipo de dato byte:");
        System.out.println(Byte.MIN_VALUE + " " + Byte.MAX_VALUE);
        System.out.println("Máximo y mínimo valor para un tipo de dato short:");
        System.out.println(Short.MIN_VALUE + " " + Short.MAX_VALUE);
        System.out.println("Máximo y mínimo valor para un tipo de dato int:");
        System.out.println(Integer.MIN_VALUE + " " + Integer.MAX_VALUE);
        System.out.println("Máximo y mínimo valor para un tipo de dato long:");
        System.out.println(Long.MIN_VALUE + " " + Long.MAX_VALUE);
        System.out.println("Máximo y mínimo valor para un tipo de dato float:");
        System.out.println(Float.MIN_VALUE + " " + Float.MAX_VALUE);
        System.out.println("Máximo y mínimo valor para un tipo de dato double:");
        System.out.println(Double.MIN_VALUE + " " + Double.MAX_VALUE);
    }
}

Tenemos como resultado:

java clases de envoltura

Recordemos de conceptos anteriores que hemos utilizado una serie de métodos estáticos de las clases de envoltura como por ejemplo para la conversión de datos:

    String cadena="30";
    int monedas=Integer.parseInt(cadena);

Cuando veamos más adelante clases genéricas estaremos obligados a utilizar las clases de envoltorio en lugar de los tipos de datos primitivos.

Caracter de subrayado para mejorar la legibilidad del código.

En Java podemos utilizar el caracter '_' para separar bloques de números cuando inicializamos variables enteras y reales:

    public static void main(String[] args) {
        int premio=1_000_000;
        System.out.println("Premio mayor:"+premio);
    }

Estamos definiendo una variable entera con el valor 1 millón, como podemos ver es más legible que escribir:

        int premio=1000000;

No hay diferencias luego de compilar el programa cuando empleamos el caracter '_'.


Retornar