Apuntes Lenguaje Java

2. Tipos, Valores y Variables

2.1. Tipos
2.2. Tipos primitivos
2.3. Variables
2.4. Literales
2.5. Operaciones sobre tipos primitivos

2.1. Tipos

Java es un lenguaje con control fuerte de Tipos (Strongly Typed). Esto significa que cada variable y cada expresión tiene un Tipo que es conocido en el momento de la compilación. El Tipo limita los valores que una variable puede contener, limita las operaciones soportadas sobre esos valores y determina el significado de la operaciones. El control fuerte de tipos ayuda a detectar errores en tiempo de compilación. 

En Java existen dos categorias de Tipos:

bulletTipos Primitivos
bulletReferencias

Las referencias se usan para manipular objetos. Se verán en una lección posterior.

2.2. Tipos primitivos

Los tipos primitivos son los que permiten manmipular valores numéricos (con distintos grados de precisión), caracteres y valores booleanos (verdadero / falso). Los Tipos Primitivos son:

bulletboolean : Puede contener los valores true o false.
bulletbyte : Enteros. Tamaño 8-bits. Valores entre -128 y 127.
bulletshort : Enteros. Tamaño 16-bits. Entre -32768 y 32767.
bulletint : Enteros. Tamaño 32-bits. Entre -2147483648 y 2147483647.
bulletlong : Enteros. Tamaño 64-bits. Entre -9223372036854775808 y 9223372036854775807.
bulletfloat : Números en coma flotante. Tamaño 32-bits.
bulletdouble : Números en coma flotante. Tamaño 64-bits.
bulletchar : Caracteres. Tamaño 16-bits. Unicode. Desde '\u0000' a '\uffff' inclusive. Esto es desde 0 a 65535

El tamaño de los tipos de datos no depende de la implementación de Java. Son siempre los mismos.

2.3. Variables

Una variable es un área en memoria que tiene un nombre y un Tipo asociado. El Tipo es o bien un Tipo primitivo o una Referencia.

Es obligatorio declarar las variables antes de usarlas. Para declararlas se indica su nombre y su Tipo, de la siguiente forma:

tipo_variable nombre ;

Ejemplos:

int i;         // Declaracion de un entero
char
letra;    // Declaracion de un caracter
boolean
flag;  // Declaracion de un booleano

bullet

El ; es el separador de sentencias en Java.

bullet

El símbolo // indica comentarios de línea.

bullet

En Java las mayúsculas y minúsculas son significativas. No es lo mismo el nombre letra que Letra.

bullet

Todas las palabras reservadas del lenguaje van en minúsculas.

bullet

Todas las palabras que forman parte del lenguaje van en negrita a lo largo de todos los apuntes.

Se pueden asignar valores a las variables mediante la instrucción de asignación. Por ejemplo:

i = 5;          // a la variable i se le asigna el valor 5
letra = 'c';    // a la variable letra se le asigna el valor 'c'
flag = false;  // a la variable flag se le asigna el valor false

La declaración y la combinación se pueden combinar en una sola expresión:

int i = 5;        
char
letra = 'c';  
boolean
flag = false; 

2.4. Literales

En los literales numéricos puede forzarse un tipo determinado con un sufijo:

bullet

Entero largo: l ó L.

bullet

Float: f ó F

bullet

Double: d ó D.

Por ejemplo:

long l = 5L;
float numero = 5f;

En los literales numéricos para float y double puede usarse el exponente (10 elevado a...) de la forma: 1.5e3D (equivale a 1500)

Literales hexadecimales: Al valor en hexadecimal se antepone el símbolo 0x. Por ejemplo: 0xf (valor 15)

Literales booleanos: true (verdadero) y false (falso)

Literales caracter: Un caracter entre apóstrofes (') o bien una sequencia de escape (también entre '). Las secuencias de escape están formadas por el símbolo \ y una letra o un número. Algunas secuencias de escape útiles:

bullet

\n:    Salto de línea

bullet

\t:    Tabulador

bullet

\b:    Backspace.

bullet

\r:    Retorno de carro

bullet

\uxxxx: donde xxxx es el código Unicode del carácter. Por ejemplo \u0027 es el apostrofe (')

2.5. Operaciones sobre Tipos primitivos

La siguiente tabla muestra un resumen de los operadores existentes para las distrintas clases de tipos primitivos. El grupo 'Enteros' incluye byte, short, int, long y char. El grupo 'Coma flotante' incluye float and double.

Tipos Grupo de operadores Operadores
Enteros Operadores de comparación que devuelven un valor boolean < (menor) , <= (menor o igual) , > (mayor), >= (mayor o igual), == (igual), != (distinto)
  Operadores numéricos, que devuelven un valor int o long + (unario, positivo), - (unario, negativo), + (suma) , - (resta) , * (multiplicación), / (división), % (resto), ++ (incremento), --(decremento), <<, >>, >>> (rotación) , ~ (complemento a nivel de bits), & (AND a nivel de bits), | (OR a nivel de bits) ^(XOR a nivel de bits)
Coma flotante Operadores de comparación que devuelven un valor boolean < (menor) , <= (menor o igual) , > (mayor), >= (mayor o igual), == (igual), != (distinto)
  Operadores numéricos, que devuelven un valor float o double + (unario, positivo), - (unario, negativo), + (suma) , - (resta) , * (multiplicación), / (división), % (resto), ++ (incremento), --(decremento).
Booleanos Operadores booleanos == (igual), != (distinto), ! (complemento), & (AND), | (OR),  ^ (XOR), && (AND condicional), || (OR condicional) 

Antonio Bel Puchol - antonio@abelp.net