NOTA: La traducción de esta documentación es un esfuerzo personal y voluntario, no es un documento oficial de Sun Microsystems ni Oracle ni está patrocinado por ninguna de estas empresas. Los documentos originales (en inglés) están disponibles en: http://docs.oracle.com/javase/tutorial/.
Dirija cualquier comentario, petición, felicitación, etc. a tutorialesjava_@RROBA_codexion.com.
Si desea ayudar a mantener en funcionamiento esta web, colaborar con la traducción de estos documentos o necesita que se traduzca algún capítulo en concreto puede realizar una donación directa mediante Paypal:
Tipos de datos primitivos (Los tutoriales Java™ > El lenguaje Java > Lo básico del lenguaje)
Ruta: El lenguaje Java
Lección: Lo básico del lenguaje
Sección: Variables
Tipos de datos primitivos
Página inicial > El lenguaje Java > Lo básico del lenguaje
Tipos de datos primitivos
El lenguaje de programación es un lenguaje fuertemente tipado, esto significa que todas las variables deben ser declaradas antes de ser utilizadas. Esto implica establecer el tipo y el nombre de la variable, como ya hemos visto:
int gear = 1;
 
Al hacer esto le indicamos al programa que existe una variable llamada «gear», que almacena datos numéricos y que tiene un valor inicial de «1». El tipo de dato de una variable determina los valores que puede contener además de las operaciones que se puede realizar sobre ella. El lenguaje de programación Java incluye siete otros tipos de datos primitivos además de int. Un tipo primitivo está predefinido por el lenguaje y se nombra con una palabra clave reservada. Los valores primitivos no comparten estado con otros valores primitivos. Los ocho tipos de datos primitivos incluidos en el lenguaje de programación Java son: Además de los ocho tipos de dato primitivos enumerados más arriba, el lenguaje de programación Java también proporciona soporte especial para cadenas de caracteres mediante la clase java.lang.String. Al encerrar una cadena de caracters entre comillas dobles automáticamente se creará un nuevo objeto de tipo String, por ejemplo, String s = "esto es una cadena";. Los objetos String son inmutables, lo que significa que, una vez creados, sus valores no se pueden cambiar. La clase String técnicamente no es un tipo de dato primitivo, pero si tenemos en cuenta el trato especial que le da el lenguaje, probablemente tenderá a pensar en ella como tal. Aprenderá más acerca de la clase String en Objetos de datos simples

Valores predeterminados

No siempre es necesario asignar un valor cuando se declara un campo. El compilador fija un valor predeterminado razonable para los campos que se declaran pero no son inicializados. En general, este valor será cero o null, dependiendo del tipo de dato. Sin embargo, fiarse de estos valores predeterminados se considera una mala costumbre en la programación.

La siguiente tabla resume los valores predeterminados para los tipos de dato que hemos mencionado anteriormente.

Tipo de dato Valor predeterminado (para campos)
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
String (o cualquier objeto)   null
boolean false

Las variables locales son ligeramente distintas, el compilador nunca asigna un valor predeterminado a una variable local sin asignar. Si no puede inicializar su variable local donde se declara, asegúrese de asignarle un valor antes de intentar usarla. Acceder a una variable local sin inicializar resutlará en un error a la hora de compilar.

Literales

Se habrá fijado en que la palabra clave new no se utiliza para inicializar una variable de tipo primitivo. Los tipos primitivos son tipos de datos especiales incrustados dentro del lenguaje, no son objetos creados de una clase. Un literal es la representación en código fuente de un valor fijo, los literales se represenan directamente en su código sin necesidad de computación. Es posible asignar un literal a una variable de un tipo primitivo, como se muestra a continuación:

boolean result = true;
char capitalC = 'C';
byte b = 100; 
short s = 10000; 
int i = 100000; 
 
Los tipos enteros (byte, short, int y long) se pueden expresar com los sistemas numéricos decimal, octal o hexadecimal. El decimal es el sistema numérico que utiliza todos los días, está basado en 10 dígitos, numerados desde el 0 hasta el 9. El sistema octal es de base 8, que consiste de los dígitos entre el 0 y el 7. El sistema hexadecimal es de base 16, cuyos dígitos son los números entre el 0 y el 9 y las letras entre la A y la F. El sistema decimal será probablemente el único ssitema numércio que utilizará en la programación de uso general. Sin embargo, si necesita octal o hexadecimal, el siguiente ejemplo muestra la sintaxis correcta. El prefijo 0 indica octal, mientras que 0x indica hexadecimal.
int decVal = 26;   // El número 26 en decimal
int octVal = 032;  // El número 26 en octal
int hexVal = 0x1a; // El número 26 en hexadecimal

Los tipos de coma flotante (float y double) también se pueden expresar con E o e (para la notación científica), F o f (literal float de 32 bits) y D o d (literal double de 64 bits, este es el predeterminado y se omite por convenio).

double d1 = 123.4;
double d2 = 1.234e2; // el mismo valor que d1 pero en notación científica
float f1  = 123.4f;

Los literales de tipo char y String pueden contener cualquier carácter Unicode (UTF-16). Si su editor de texto y su sistema lo permiten puede utilizar estos caracteres directamente en su código. Si no, puede utilizar el «escape Unicode» como, por ejemplo, '\u0108' (C mayúscula con circunflejo) o "S\u00ED se\u00F1or" («Sí Señor» en español). Utilice siempe 'comillas simples' para literales char "comillas dobles" para literales String. Las secuencias de escape Unicode se puede utilizar en otros sitios de un programa (nombres de campo, por ejemplo), no solamente en literales char o String.

El lenguaje de programación Java tambien contempla algunas secuencias de escape especiales para literales char y String: \b (retroceso de carácter), \t (tabulación), \n (cambio de línea), \f (salto de página), \r (retorno de carro), \" (comillas dobles), \' (comillas simples) y \\ (barra invertida).

También está el literal especial null que se puede utilizar como valor para cualquier tipo de referencia. Se puede asignar null a cualquier variable excepto variables de tipo primitivo. Se puede hacer poco con un valor null además de comprobar su presencia. Por lo tanto null se utiliza a menudo como marcador en un programa para indicar que un objeto no está disponible.

Finalmente también hay un tipo especial de literal llamado literal de clase que se forma al tomar el nombre del tipo y añadir «.class», por ejemplo, String.class. Esto se refiere al objeto (de tipo Class) que representa al tipo en sí mismo.

Pagina anterior: Variables
Página siguiente: Arrays