Hemos estado utilizando en todos los conceptos anteriores la mayoría de datos primitivos que provee Java, ahora los enumeraremos a todos.
Recordamos 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 al 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
- float: Formato en coma flotante de simple precisión
- double: Formato en coma flotante de doble precisión
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 primitivo | Clase de envoltura |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
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:
Ver videopublic 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:

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.
Carácter de subrayado para mejorar la legibilidad del código.
En Java podemos utilizar el carácter '_' 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 carácter '_'.
No hay comentarios:
Publicar un comentario