AjLearning
AjLearning 0.1    





Introducción a Java - Tipos de Datos Enteros

Curso Introducción a Java

    Anterior     Siguiente

Como en otros lenguajes, Java maneja el tipo de datos entero, y con distintos tamaños y capacidades. Es uno de los tipos que la máquina virtual de Java maneja de forma directa. Cada implementación de la máquina virtual debe cumplir con una serie de reglas de manipulación de enteros (y otros tipos primitivos) que aseguran que nuestros
programas Java se comporten de la misma forma en distintas
plataformas.

Esto asegura la portabilidad de Java. En otros lenguajes, como por ejemplo C o C++, el tamaño y capacidades de los enteros, varía de sistema operativo a sistema operativo, y aún dentro de la misma plataforma, de fabricante de compilador a otro. Eso ha provocado que la portabilidad de muchos programas C/C++ se haya visto dificultada por este estado de cosas. Si bien se ha avanzado mucho en solucionar el problema, los diseñadores del lenguaje Java se plantearon desde el comienzo solucionarlo.

Para eso adoptaron un formato estándar de los tipos primitivos para todo Java, independiente de la máquina donde se ejecute.

Hay cuatro tipos enteros en Java:

byte
Valores que pueden tener entre -128 a +127, y ocupan como era de esperarse un byte (8 bits) en memoria

short
Valores entre -32768 a 32767, que ocupan 2 bytes (16 bits) en memoria

int
El tipo entero normal, con un rango de valores de entre -2147483648 a 2147483647, que ocupa 4 bytes (32 bits) en memoria

long
El tamaño más grande de entero que maneje Java, con valores entre -9223372036854775808 hasta 9223372036854775807. Ocupan 8 bytes (64 bits).

Algunos ejemplos de declaraciones:

byte cantidadAhorrada; short cantidadClientes; int cantidadDeudas; long deudaExterna;
Debemos tratar ahora el tema de escribir, en el código, valores correspondientes a los tipos enteros.
Los literales enteros (recordemos que esto incluye a los byte y a los short, así como los int y long), se escriben en dígitos decimales, octales o hexadecimales. Espero que Ud. esté familiarizado con los primeros (en caso contrario, deberá repasar su cultura general). Como expresiones decimales válidas tenemos :
10 123 Las expresiones octales (en base 8), comienzan con un dígito 0 (cero),
y las hexadecimales (en base 16, con dígitos 0-9 y a-f o A-F) con un 0x o 0X
(cero y equis). Las siguientes expresiones entonces son equivalentes :
12 014 0x0c 0x0C Cuando un literal entero termina con l o L (letra ele), es un entero largo (del tipo long). En caso contrario, se toma de tipo int (entero simple). Una constante int se puede asignar a short o byte directamente, si es posible acomodarla en ese tipo.

Podemos declarar una variable y darle un valor inicial, en la misma sentencia:
long numeroGrande = 99999999L; El valor a asignar se coloca luego de un signo de igual. Es común poner un valor inicial a una variable local a un método. En caso de no hacerlo, si usamos la variable sin valor inicial, el compilador nos advierte del problema. El siguiente código, inserto en un método, no compilaría:
int k; k=k+1; Pueden declararse varias variables en la misma sentencia, y hasta asignárseles valores:
int x, y; int xInicial = 0, yInicial = 0; Como el compilador no toma como especiales los cambios de línea, podemos escribir este tipo de declaraciones de la forma:
int xInicial = 0, yInicial = 0, zInicial = 0; Los valores del tipo byte o short, se inicializan de manera similar:
byte unOcteto = 7; short unValor = 2300; Notemos que no hizo falta declarar al 7 como byte, o al 2300 como entero corto. El compilador se encarga de tomarlos como valores byte y short, respectivamente.

Java no solamente especifica la forma de tratar a los enteros, sino también cómo se graban o serializan en algún medio externo. Esto hace posible que lo grabemos en un archivo como entero, luego lo podamos recuperar de la misma forma, aún desde otra plataforma. Esto no es así de fácil en otros lenguajes: muchos compiladores C graban enteros de una forma en la plataforma Motorola, y de
otra forma en plataforma Intel, aún cuando sean del mismo tamaño. Los de formato Intel, se graban con el byte menos significativo primero, y en el formato Motorola, se graban en orden inverso al de Intel.

Programado por Angel J. Lopez www.ajlopez.com