Tipos de datos en Java
En Java existen básicamente dos tipos de datos, los primitivos y los objetos.
Primitivos
Son tipos básicos de datos que guardan un solo valor. Entre ellos tenemos los siguientes.
- Números
- Caracteres
- Booleanos
Todos los tipos de datos primitivos están declarados en minúsculas. A continuación tienes una lista de los tipos primitivos en Java, su tamaño y rango.
Tipo | Descripción | Tamaño | Rango |
---|---|---|---|
byte | Números diminutos | 1 byte | -128 to 127 |
short | Números enteros (rango pequeño) |
2 bytes | -32,768 a 32,767 |
int | Números enteros | 4 bytes | -2,147,483,648 a 2,147,483,647 |
long | Números enteros (rango grande) |
8 bytes | -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 |
float | Números de punto flotante | 4 bytes | ??? |
double | Números de doble precisión | 8 bytes | ??? |
boolean | Booleanos | 1 bit | true / false |
char | Caracteres simples | 2 bytes | Unicode \u0000 hasta \uffff |
Tal vez habrás notado que los tipos float
y double
no tienen un tamaño específico. Esto podría ser tema para otro post, sin embargo, te dejo la documentación oficial para que investigues un poco acerca del tamaño de estos tipos de datos.
https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3
Si ya haz programado en otros lenguajes de programación notarás que no existe un tipo String para cadenas de texto. Esto es parcialmente cierto, si bien en Java el tipo String no es un primitivo si no más bien un objeto, java soporta otra variedad de tipos de datos a través de los Tipos Simples de datos.
Por otro lado, cada uno de los tipos de datos vistos no necesita necesariamente un valor de inicialización. Si un atributo de un objeto es declarado sin valor de inicialización (de lo cual hablaremos más adelante) tomará uno de los siguientes valores por defecto según el tipo.
Tipo | Valor por defecto |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
char | \u0000 |
String (o cualquier objeto) |
null |
boolean | false |
Sin embargo ten en cuenta que no inicializar variables o atributos está considerado como una mala práctica de programación. Siempre se debe inicializar las variables con algún valor para evitar comportamientos inesperados. Las variables locales se comportan diferente y no asignan los valores mostrados en la anterior tabla.
Si eres observador, habrás notado que algunas variables terminan con una letra específica, esto corresponde a que están indicadas con notación alfa. Para profundizar un poco más en el tema te recomandamos nuestro post Declaración de Variables en Java.
Tipos simples de datos
Como se dijo al comienzo de este post, java soporta tipos primitivos y objetos. Ya vimos anteriormente los primitivos (más abajo verás la declaración e inicialización), ahora veremos los tipos simples de datos que hacer parte de los objetos. Con el tiempo te darás cuenta que en Java existen infinidad de objetos incorporados en el lenguaje, por lo cuál veremos solamente los más básicos. No profundizaremos mucho en estos tipos de datos ya que el objetivo del presente post es dar una introducción a los tipos de datos, su declaración e inicialización.
Strings
Los strings en Java son secuencias de caracteres. Java provee la clase String
para manejar y manipular secuencias de caracteres.
Números
Java provee la clase Number
en el paquete java.lang
para manejar y manipular números de manera más amigable No solamente esto, sino que Java además provee varias subclases de este namespace que te ayudarán a realizar operaciones sobre números, aritmética y otras ramas de la matemática de manera mucho más fluida y sencilla.
Declaración e inicialización
Java es un leguaje de tipado estático, lo cuál significa que todas las variables deben ser declaradas para poder ser utilizadas. Una variable se declara colocando en una sentencia como primera instancia el tipo de variable, seguido del nombre de la variable, el operador de asignación igual ( =
) y finalmente el valor. Si solamente se indica el tipo sin asignar algún valor, entonces se dice que se declaró la variable más no se inicializó. Veamos a continuación como declarar distintos tipos de variables.
byte min;
int entero;
char letra;
Ahora bien, veamos cómo asignar valores a estas variables inicializadas.
min = 8;
entero = 3435;
letra = 'S';
Esto mismo lo hubiéramos podido hacer en una sola sentencia.
byte min = 8;
int entero = 3435;
char letra = 'S';
Veamos el siguiente ejemplo en donde se representa el número 26 como entero en distintos sistemas de numeración.
// número 26, en decimal
int decVal = 26;
// número 26, en hexadecimal
int hexVal = 0x1a;
// número 26, en binario
int binVal = 0b11010;
Veamos ahora como representar el valor 123.4 en distintas notaciones de punto flotante.
// número 123.4, doble precisión
double d1 = 123.4;
// número 123.4, notación científica
double d2 = 1.234e2;
// número 123.4, punto flotante
float f1 = 123.4f;