Está en la página 1de 12

INTRODUCCIN

Los primeros lenguajes de programacin no usaban objetos, solo variables. Una variable podramos decir que es un
espacio de la memoria del ordenador a la que asignamos un contenido que puede ser un valor numrico (slo
nmeros, con su valor de clculo) o de tipo carcter o cadena de caracteres (valor alfanumrico que constar slo de
texto o de texto mezclado con nmeros).

Como ejemplo podemos definir una variable a que contenga 32 y esto lo escribimos como a = 32. Posteriormente
podemos cambiar el valor de a y hacer a = 78. O hacer a equivalente al valor de otra variable b as: a = b.
Dado que antes hemos dicho que un objeto tambin ocupa un espacio de memoria: en qu se parecen y en qu se
diferencia un objeto de una variable? Consideraremos que las variables son entidades elementales: un nmero, un
carcter, un valor verdadero o falso mientras que los objetos son entidades complejas que pueden estar formadas
por la agrupacin de muchas variables y mtodos. Pero ambas cosas ocupan lo mismo: un espacio de memoria (que
puede ser ms o menos grande).

En los programas en Java puede ser necesario tanto el uso de datos elementales como de datos complejos. Por eso
en Java se usa el trmino Tipos de datos para englobar a cualquier cosa que ocupa un espacio de memoria y que
puede ir tomando distintos valores o caractersticas durante la ejecucin del programa. Es decir, en vez de hablar de
tipos de variables o de tipos de objetos, hablaremos simplemente de tipos de datos. Sin embargo, a veces
coloquialmente no se utiliza la terminologa de forma estricta: puedes encontrarte textos o pginas web donde se
habla de una variable en alusin a un objeto.

En Java diferenciamos dos tipos de datos: por un lado, los tipos primitivos, que se corresponden con los tipos de
variables en lenguajes como C y que son los datos elementales que hemos citado. Por otro lado, los tipos objeto (que
normalmente incluyen mtodos).

Veamos los tipos de datos en Java sobre un esquema de sntesis:

Esquema de sntesis de tipos de datos en Java

NOMBRE

TIPO

OCUPA

RANGO APROXIMADO

byte

Entero

1 byte

-128 a 127

short

Entero

2 bytes

-32768 a 32767

int

Entero

4 bytes

2*109

TIPOS PRIMITIVOS

long

Entero

8 bytes

Muy grande

(sin mtodos; no son

float

Decimal

4 bytes

Muy grande

8 bytes

Muy grande

2 bytes

---

1 byte

---

objetos; no necesitan
una invocacin para ser

simple
double

creados)

Decimal
doble

char

Carcter
simple

boolean

Valor
true o

TIPOS DE

false

DATOS EN
JAVA
Tipos de la biblioteca

String (cadenas de texto)

estndar de Java

Muchos otros (p.ej. Scanner, TreeSet, ArrayList)

Tipos definidos por el

Cualquiera que se nos ocurra, por ejemplo Taxi,

programador / usuario

Autobus, Tranvia

arrays

Serie de elementos o formacin tipo vector o


matriz. Lo consideraremos un objeto especial que

TIPOS OBJETO

carece de mtodos.

(con mtodos,
necesitan una

Tipos envoltorio o

Byte

invocacin para ser

wrapper (Equivalentes a

Short

creados)

los tipos primitivos pero


como objetos.)

Integer
Long
Float
Double
Character
Boolean

Tipo de
dato

Representacin

Tamao
(Bytes)

Rango de Valores

Valor por
defecto

Clase
Asociada

byte

Numrico Entero
con signo

-128 a 127

Byte

short

Numrico Entero
con signo

-32768 a 32767

Short

int

Numrico Entero
con signo

-2147483648 a 2147483647

Integer

long

Numrico Entero
con signo

-9223372036854775808 a
9223372036854775807

Long

float

Numrico en Coma
flotante de
precisin simple
Norma IEEE 754

3.4x10-38 a 3.4x1038

0.0

Float

double

Numrico en Coma
flotante de
precisin doble
Norma IEEE 754

1.8x10-308 a 1.8x10308

0.0

Double

Carcter Unicode

\u0000 a \uFFFF

\u0000

Character

Dato lgico

true false

false

Boolean

Void

char
boolean
void

Vamos a comentar distintas cuestiones:

1. Un objeto es una cosa distinta a un tipo primitivo, aunque porten la misma informacin. Tener siempre
presente que los objetos en Java tienen un tipo de tratamiento y los tipos primitivos, otro. Que en un momento dado
contengan la misma informacin no significa en ningn caso que sean lo mismo. Iremos viendo las diferencias entre
ambos poco a poco. De momento, recuerda que el tipo primitivo es algo elemental y el objeto algo complejo. Supn
una cesta de manzanas en la calle: algo elemental. Supn una cesta de manzanas dentro de una nave espacial
(considerando el conjunto nave + cesta): algo complejo. La informacin que portan puede ser la misma, pero no son
lo mismo.

2. Para qu tener esa aparente duplicidad entre tipos primitivos y tipos envoltorio? Esto es una cuestin que atae
a la concepcin del lenguaje de programacin. Tener en cuenta una cosa: un tipo primitivo es un dato elemental y
carece de mtodos, mientras que un objeto es una entidad compleja y dispone de mtodos. Por otro lado, de acuerdo
con la especificacin de Java, es posible que necesitemos utilizar dentro de un programa un objeto que porte como
contenido un nmero entero. Desde el momento en que sea necesario un objeto habremos de pensar en un
envoltorio, por ejemplo Integer. Inicialmente nos puede costar un poco distinguir cundo usar un tipo primitivo y
cundo un envoltorio en situaciones en las que ambos sean vlidos. Seguiremos esta regla: usaremos por norma
general tipos primitivos. Cuando para la estructura de datos o el proceso a realizar sea necesario un objeto, usaremos
un envoltorio.

3. Los nombres de tipos primitivos y envoltorio se parecen mucho. En realidad, excepto entre int e Integer y char y
Character, la diferencia se limita a que en un caso la inicial es minscula (por ejemplo double) y en el otro es mayscula
(Double). Esa similitud puede confundirnos inicialmente, pero hemos de tener muy claro qu es cada tipo y cundo
utilizar cada tipo.

4. Una cadena de caracteres es un objeto. El tipo String en Java nos permite crear objetos que contienen texto
(palabras, frases, etc.). El texto debe ir siempre entre comillas. Muchas veces se cree errneamente que el tipo String
es un tipo primitivo por analoga con otros lenguajes donde String funciona como una variable elemental. En Java no
es as.
5. Hay distintos tipos primitivos enteros. Cul usar? Por norma general usaremos el tipo int. Para casos en los que
el entero pueda ser muy grande usaremos el tipo long. Los tipos byte y short los usaremos cuando tengamos un
mayor dominio del lenguaje.

6. Cuntos tipos de la biblioteca estndar de Java hay? Cientos o miles. Es imposible conocerlos todos.

7. Un array es un objeto? Los arrays los consideraremos objetos especiales, los nicos objetos en Java que carecen
de mtodos.

TIPOS DE DATOS JAVA


Las variables son posiciones de memoria reservadas para almacenar
valores. Esto significa que cuando se crea una variable para reservar algo
se crea un espacio en la memoria.
Existen dos tipos de datos disponibles en Java:

Tipos de datos primitivos.


Tipos de datos de referencia.

REPRESENTACIN INTERNA DE LOS DATOS


En el mundo real los datos que manejamos se representan mediante letras, nmeros,
smbolos, imgenes, sonidos, etc.
Esto se conoce como representacin externa de los datos.
Pero si queremos introducirlos en un ordenador, todos estos elementos se deben
transformar codificar.
Un ordenador est compuesto fundamentalmente por circuitos electrnicos digitales.
Los datos circulan por estos circuitos en forma de impulsos elctricos.
De forma muy simplificada podemos decir que por un circuito pasa o no pasa corriente
y esto lo podemos representar con dos dgitos: 0 y 1.
Todos los datos e informacin que contiene un ordenador, estn representados de
forma interna mediante secuencias de ceros y unos.
Un sistema de representacin que utiliza solamente dos smbolos ( 0 , 1 ) se
llama sistema binario.
Por tanto, los datos tal y como los expresamos de forma natural se deben codificar de
forma interna en binario para que puedan ser tratados por el ordenador.
El sistema binario utiliza solamente dos dgitos ( 0 y 1 ) llamados bits.
La palabra bit procede de la unin de las palabras binary digit.
Un bit es la unidad mnima de representacin de informacin.
Utilizando 1 bit podremos solamente representar dos valores posibles: 0, 1.
Utilizando 2 bits podemos representar 4 valores: 00, 01, 10, 11.
Utilizando 3 bits podemos representar 8 valores:
000, 001, 010, 011, 100, 101, 110, 111.
Utilizando 4 bits podemos representar 16 valores:
0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111.
En general, utilizando N bits podremos representar 2N valores.
Ocho bits forman un byte.
El byte es la unidad bsica de medida de la informacin.
Un byte es la cantidad ms pequea de informacin que el ordenador puede manejar.
Con un byte se pueden representar 28 = 256 caracteres.
En el interior del ordenador los datos se transmiten y almacenan en grupos de bytes
llamados palabras.

La longitud de palabra depende de cada tipo de ordenador: 8, 16, 32, 64.


TIPOS DE DATOS EN JAVA
Un dato siempre lleva asociado un tipo de dato, que determina el conjunto de valores
que puede tomar.
En Java toda la informacin que maneja un programa est representada por dos tipos
principales de datos:
a)

DATOS DE TIPO BSICO O PRIMITIVO.


Hay ocho tipos de datos primitivos soportados por Java. Los tipos de datos primitivos
estn predefinidos por el lenguaje y nombrados por una palabra clave. Veamos ahora
en detalle acerca de los ocho tipos de datos primitivos.
TIPO DE DATOS ENTEROS :
Byte

Tipo de datos Byte es un entero de 8 bits.


El valor mnimo es -128 (-2 ^ 7).
El valor mximo es 127 (inclusive) (2 ^ 7 -1).
El valor por defecto es 0.
Tipo de datos Byte se utiliza para ahorrar espacio en grandes conjuntos, sobre
todo en el lugar de los nmeros enteros, ya que un byte es cuatro veces ms
pequeo que un int.
Ejemplo: byte a = 100, byte b = -50
Otro ejemplo:
El tipo de dato byte puede representar datos enteros que se encuentren en el
rango de -128 a +127.
El tamao de un dato de tipo byte es de 8 bits.

Short

Tipo de datos Short es un entero de 16 bits.


El valor mnimo es -32,768 (-2 ^ 15).
El valor mximo es de 32.767 (inclusive) (2 ^ 15 -1).
Tipo de datos Short tambin se puede utilizar para ahorrar memoria como tipo
de datos byte. Un tipo de dato short es 2 veces ms pequeo que un int.
El valor por defecto es 0.
Ejemplo: short s = 10000, short r = -20000
Otro ejemplo:
El tipo de dato short puede representar datos enteros que se encuentren en el
rango de -32768 y +32767.
El tamao de un dato de tipo short es de 16 bits.

Int

Tipo de datos int es un entero de 32 bits.

El valor mnimo es -2147483648 (-2 ^ 31).


El valor mximo es 2147483647 (inclusive)(2 ^ 31 -1).
Int. se utiliza generalmente como el tipo de datos predeterminado para los
valores enteros a menos que exista una preocupacin acerca de la memoria.
El valor por defecto es 0.
Ejemplo: int a = 100000, int b = -200000
Otro ejemplo:
El tipo de dato int puede representar datos enteros que se encuentren en el
rango de -2147483648 y +2147483647.
El tamao de un dato de tipo int es de 32 bits.

Long

Tipo de datos Long es un entero de 64 bits.


El valor mnimo es -9223372036854775808 (-2 ^ 63).
El valor mximo es 9223372036854775807 (inclusive) (2 ^ 63 -1).
Este tipo se utiliza cuando se necesita una gama ms amplia que int.
El valor por defecto es 0.
Ejemplo: long a = 100000, int b =-200000
Otro ejemplo:
El tipo de dato int puede representar datos enteros que se encuentren en el
rango de -9223372036854775808 y +9223372036854775807.
El tamao de un dato de tipo int es de 64 bits.
Para indicar de manera explicita que el dato es un long , se agrega una L o l al
final del valor de la variable.

TIPO DE DATOS FLOTANTES:


Float

El Float es un dato de coma flotante de precisin simple de 32 bits.


Float se utiliza principalmente para ahorrar memoria en grandes arrays de
nmeros.
El valor por defecto es 0,0 f.
Ejemplo: float f1 = 234.5f
Otro ejemplo:
El tipo de dato float puede representar datos en coma flotante que se
encuentren en el rango de 1.40239846e45f y 3.40282347e+38f.
El tamao de un dato de tipo short es de 32 bits.
Para indicar de manera explicita que el dato es un float , se agrega una F o f al
final del valor de la variable.

Double

El doble es un dato de coma flotante de doble precisin de 64 bits.

Este tipo de datos se utiliza generalmente como el tipo de datos predeterminado


para valores decimales, en general, la opcin por defecto.
El valor por defecto es 0.0 D.
Ejemplo: doble d1 = 123,4.
Otro ejemplo:
El tipo de dato double puede representar datos en coma flotante que se
encuentren en el rango de 4.94065645841246544e324d y
1.7976931348623157e+308d.
El tamao de un dato de tipo short es de 64 bits.
Para indicar de manera explicita que el dato es un double , se agrega
una D o d al final del valor de la variable.

Boolean:
El tipo de dato boolean puede representar dos valores logicos : true(verdadero)
ofalse(falso).

Boolean representa un bit de informacin.


Slo hay dos posibles valores: true y false.
Este tipo de datos se utiliza para indicadores simples que hacen un seguimiento
de condiciones.
El valor predeterminado es falso.
Ejemplo: boolean a = true

Char:
El tipo de dato char se usa para representar caracteres(codigo Unicode).
Un caracter es representado internamente por un entero
Char es un carcter Unicode de 16 bits.
El valor mnimo es \u0000 (o 0).
El valor mximo es \uffff (o 65.535 inclusive).
Tipo de datos char se utiliza para almacenar cualquier carcter.
Ejemplo: char letra = 'A'

B)

REFERENCIAS A OBJETOS.

Las variables de referencia se crean mediante constructores definidos de las


clases. Se utilizan para acceder a los objetos. Estas variables se declaran de un
tipo especfico que no se puede cambiar.
Objetos de la Clase, y varios tipos de variables de array estn bajo tipo de datos
de referencia.
El valor predeterminado de cualquier variable de referencia es nulo.
Una variable de referencia se puede utilizar para referirse a cualquier objeto del
tipo declarado o cualquier tipo compatible.
Ejemplo: Carro unCarro = new Carro ("Ford");

Los tipos de datos bsicos o primitivos no son objetos y se pueden utilizar directamente
en un programa sin necesidad de crear objetos de este tipo. La biblioteca Java
proporciona clases asociadas a estos tipos que proporcionan mtodos que facilitan su
manejo.
Los tipos de datos primitivos que soporta Java son:
Tipo de
dato

Representacin

Tam
ao
(Byt
es)

Rango de Valores

byte

Numrico Entero con


signo

-128 a 127

Byte

short

Numrico Entero con


signo

-32768 a 32767

Short

int

Numrico Entero con


signo

-2147483648
a 2147483647

Integer

long

Numrico Entero con


signo

-9223372036854775808 a
9223372036854775807

Long

float

Numrico en Coma
flotante de precisin
simple Norma IEEE
754

3.4x10-38 a 3.4x1038

0.0

Float

double

Numrico en Coma
flotante de precisin
doble Norma IEEE
754

1.8x10-308 a 1.8x10308

0.0

Double

Carcter Unicode

\u0000 a \uFFFF

\u00
00

Character

Dato lgico

true false

false

Boolean

Void

char
boolea
n
void

Valo Clase
r por Asociada
defe
cto

DATOS NUMRICOS ENTEROS


En Java los representan los tipos: byte, short, int, long.
El tipo de dato numrico entero es un subconjunto finito de los nmeros enteros del
mundo real. Pueden ser positivos o negativos.
Ejemplo de declaracin de variables enteras:
int a;
byte n1, n2;
short x;
DATOS NUMRICOS REALES
En Java los representan los tipos: float, double.
El tipo de dato numrico real es un subconjunto finito de los nmeros reales. Siempre
llevan un punto decimal y tambin pueden ser positivos o negativos. Los nmeros reales
tienen una parte entera y una parte decimal.
Por ejemplo: 0.08 -54.0001
Ejemplo de declaracin de variables reales:
float peso;
double longitud;
float altura = 2.5F;
double area = 1.7E4; // equivale a 1.7 * 104
double z = .123; //si la parte entera es 0 se puede omitir.
DATOS DE TIPO CARCTER
En Java se representa con el tipo char.
Un dato de tipo carcter se utiliza para representar un carcter dentro del rango \u0000
a \uFFFF (nmeros desde 0 hasta 65535) en Unicode.
En realidad un dato de tipo char contiene un nmero entero dentro del rango anterior
que representa un carcter.
En Java se utiliza el cdigo Unicode para la representacin de caracteres. Este cdigo
actualmente representa los caracteres de la mayora de idiomas escritos en todo el
mundo.
Los 127 primeros caracteres de Unicode corresponden al cdigo ASCII.
El Cdigo ASCII (American Standard Code for Information Interchange o Cdigo Estndar
Americano para el Intercambio de Informacin) asigna valores numricos a las letras,
nmeros, signos de puntuacin y algunos otros caracteres especiales.
ASCII incluye 256 cdigos divididos en dos conjuntos, estndar y extendido, de 128 cada
uno. El conjuntoASCII bsico, o estndar, utiliza 7 bits para cada cdigo, lo que da como
resultado 128 cdigos de caracteres desde 0 hasta 127.
El conjunto ASCII extendido utiliza 8 bits para cada cdigo, dando como resultado 128
cdigos adicionales, numerados desde el 128 hasta el 255.

En el conjunto de caracteres ASCII bsico, los primeros 32 valores estn asignados a los
cdigos de control de comunicaciones y de impresora (caracteres no imprimibles)
empleados para controlar la forma en que la informacin es transferida desde una
computadora a otra o desde una computadora a una impresora. En este grupo estn los
cdigos correspondientes a la barra espaciadora (SP por space), la tecla ENTER de
retorno de carro a un nuevo rengln (CR por carry return), etc. Tambin existen
caracteres de control usados en teleprocesamiento, como ser ACK (Acknowledge - aviso
de mensaje recibido), BEL (bell - aviso por seal sonora), ETX (end of text fin de texto),
STX (start of text comienzo de texto), etc.
Los 96 cdigos restantes del cdigo bsico corresponden a los caracteres imprimibles y
se asignan a los signos de puntuacin corrientes, a los dgitos del 0 al 9 y a las letras
maysculas y minsculas del alfabeto latino.
Los cdigos correspondientes al ASCII extendido, del 128 al 255, se asignan a aquellos
caracteres que no pertenecen al alfabeto anglosajn, por ejemplo, las vocales con tilde,
la , y en general todos los caracteres especiales que utilizan los distintos lenguajes.
Debido a lo limitado de su tamao, el cdigo ASCII no es suficiente para representar
caracteres de alfabetos como el Japons, Chino o rabe. La solucin a este problema ha
sido crear un cdigo ms grande con el que poder representar cualquier carcter de
cualquier idioma: el cdigo Unicode.
El cdigo UNICODE proporciona una nica representacin numrica para cada smbolo,
independientemente del ordenador, el programa o el lenguaje de programacin que se
use.
La codificacin Unicode se ha transformado en un estndar adoptado por las principales
empresas dehardware y software. Java utiliza la codificacin Unicode.
La descripcin completa del estndar y las tablas de caracteres estn disponibles en la
pgina web oficial de Unicode http://www.unicode.org/. La referencia completa se
publica, adems, en forma de libro impreso cada vez que se libera una nueva versin
principal. La versin digital de este libro est disponible de forma gratuita.
Ejemplo de declaracin de variables de tipo carcter:
char car;
char letra1 = 'z';
char letra = '\u0061'; //cdigo unicode del carcter a
DATOS DE TIPO LGICO
Se representan con el tipo boolean.
Los datos de este tipo slo pueden contener dos valores: true (verdadero) false (falso).
Ejemplo de declaracin de variables lgicas:
boolean primero;
boolean par = false;
Los tipos de datos lgicos son tambin conocidos como booleanos en honor del
matemtico ingls George Bool, que desarroll la teora conocida como lgebra de bool
que fue la base para la representacin de los circuitos lgicos.