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: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 deint gear = 1;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
- byte: El tipo de dato
bytees un entero de 8 bits complemento a dos. Su valor mínimo es -128 y el máximo 127 (inclusive). El tipo de datosbytese puede utilizar para ahorrar memoria en grandes arrays, donde el ahorro de memoria realmente importa. También se pueden utilizar en lugar deintdonde sus límites ayudan a aclarar el código, el hecho de que el rango de una variable es limitado puede servir como una forma de documentación.- short: El tipo de dato
shortes un entero de 16 bits complemento a dos. Su valor mínimo es -32,768 y el máximo 32,767 (inclusive). Se aplican las mismas directrices que conbyte: puede utilizarshortpara ahorrar memoria en grandes arrays, en situaciones en las que el ahorro realmente importa.- int: El tipo de dato
intes un entero de 32 bits complemento a dos. Su valor mínimo es -2,147,483,648 y el máximo 2,147,483,647 (inclusive). Generalmente este tipo es la elección predeterminada para valores enteros a no ser que haya una razón (como las mencionadas anteriormente) para elegir otro. Este tipo de dato normalmente será lo suficiente grande para los números que su program vaya a utilizar pero si necesita un rango más amplio, utilicelong.- long: El tipo de dato
longes un entero de 64 bits complemento a dos. Su valor mínimo es -9,223,372,036,854,775,808 y el máximo 9,223,372,036,854,775,807 (inclusive). Utilice este tipo de dato cuando necesite un rango de valores más amplio que el proporcionado porint.- float: El tipo de dato
floates un dato en coma flotante IEEE 754 de 32 bits y precisión simple. Su rango de valores está fuera del ámbito de este tema, pero se detalla en la sección 4.2.3 de la Especificación del lenguaje Java. Al igual que conbyteyshort, se recomienda usar unfloat(en vez de undouble) si necesita ahorrar memoria en grandes array de números en coma flotante. Este tipo de dato nunca debería ser usado para valores precisos como, por ejemplo, divisas. Para esto debería usarla clase java.math.BigDecimal. Números y cadenas trataBigDecimaly otras clases útiles proporcionadas por la plataforma Java.- double: El tipo de dato
doublees un dato en coma flotante IEEE 754 de 64 bits y precisión doble. Su rango de valores está fuera del ámbito de este tema, pero se detalla en la sección 4.2.3 de la Especificación del lenguaje Java. Normalmente este tipo de dato es la elección predeterminada para valores decimales. Como ya se ha mencionado, este tipo de dato no se debería utilizar para valores precisos como, por ejemplo, divisas.- boolean: El tipo de dato
booleansolamente tiene dos valores posibles:true(verdadero) yfalse(falso). Utilice este tipo de datos como conmutadores para la evaluación de condiciones verdadero/falso. Este tipo de dato representa un bit de información, pero su «tamaño» es algo que no está definido con precisión.- char: El tipo de dato
chares un solo carácter Unicode de 16 bits. Tiene un valor mínimo de'\u0000'(o «0») y un máximo de'\uffff'(o 65.535 inclusive).String, por ejemplo,String s = "esto es una cadena";. Los objetosStringson inmutables, lo que significa que, una vez creados, sus valores no se pueden cambiar. La claseStringté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 claseStringen Objetos de datos simplesValores 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 onull, 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
newno 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:Los tipos enteros (boolean result = true; char capitalC = 'C'; byte b = 100; short s = 10000; int i = 100000;byte,short,intylong) 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 prefijo0indica octal, mientras que0xindica 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 hexadecimalLos tipos de coma flotante (
floatydouble) 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
charyStringpueden 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 literaleschar"comillas dobles" para literalesString. Las secuencias de escape Unicode se puede utilizar en otros sitios de un programa (nombres de campo, por ejemplo), no solamente en literalescharoString.El lenguaje de programación Java tambien contempla algunas secuencias de escape especiales para literales
charyString:\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
nullque se puede utilizar como valor para cualquier tipo de referencia. Se puede asignarnulla cualquier variable excepto variables de tipo primitivo. Se puede hacer poco con un valornullademás de comprobar su presencia. Por lo tantonullse 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 tipoClass) que representa al tipo en sí mismo.
ATENCIÓN: La traducción de esta documentación es un esfuerzo personal y voluntario. NO es un documento oficial del propietario de la tecnología Java, Oracle, ni está patrocinado por esta empresa.
Los documentos originales y actualizados (en inglés) están disponibles en: http://docs.oracle.com/javase/tutorial/. La versión disponible en este sitio es la publicada en Marzo de 2008 (más información en: "What's new and What's Old? The History of the Tutorial").
Dirige cualquier comentario, petición, felicitación, etc. a tutorialesjava@codexion.com.
Si quieres ayudar a mantener en funcionamiento esta web, colaborar con la traducción de estos documentos o necesitas que se traduzca algún capítulo en concreto puedes invitarme a un café: