Tipos de datos primitivos.
Toda información en Java es representada mediante objetos o datos básicos o de tipo primitivo.Una diferencia importante entre C++ y Java, es que Java garantiza una representación interna única de los números enteros independientemente de la plataforma sobre la que se ejecute.
Tipo de dato | Tamaño bytes |
Rango de valores que puede almacenar |
Boolean | 1/8 | true o false |
Char | 2 | Cualquier representación Unicode. |
Byte | 1 | -128 a 127 |
Short | 2 | -32.768 a 32.767 |
Int | 4 | -2.147.483.648 a 2.147.483.647 |
Long | 8 | -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 |
Float | 4 | ± 3,40E38 |
Double | 8 | ± 1,797E308 |
Los tipos de datos primitivos se pueden organizar en grupos.
- Número enteros: Son los tipos byte, short int y long.
- Carácter: El tipo char representa un carácter codificado en Unicode.
- Número decimal: Los tipos float y double representan números de coma flotante.
- Lógicos: Los datos de tipo boolean pueden almacenar valores del tipo «true» y «false».
Literales.
Un literal o constante, es un valor fijo que se puede asignar directamente a una variable o puede ser utilizado en una expresión.
Existen cuatro tipos de literales básicos, que coinciden con los cuatro grupos de tipos básicos en Java:
- Númericos enteros
- Numéricos decimales
- Booleanos
- Carácter
Si los utilizamos directamente en una expresión debemos tener en cuenta lo siguiente:
- Los literales numéricos enteros se consideran de tipo int, a menos que se indique lo contrario. (byte b = 10;)
456 constante de tipo int
-54282 constante de tipo int
7282L constante de tipo long
23l constante de tipo long - Los literales numéricos decimales se consideran de tipo double
4.56 .67 0.67 56. 121. 12.0 1.3e34 1.45e-5
(float p = 3.14; // Provoca un error de compilación por la ausencia del caracter «f»). - Los literales boolean son true y false
(boolean b = 0; // Provoca un error de compilación debido a que en Java no se permite utilizar valores fuera de true o false). - Los literales de tipo char se escriben entre comillas simples (char car = ‘#’; char p = ‘\u03AF’).
Representación hexadecimal
Cualquier constante que comienza por 0x (cero x), es una constante hexadecimal (base 16).
0x10, 0x34 y 0x463 son constantes hexadecimales cuyas equivalencias decimales son 16, 52 y 1123.
Literales de cadena
Los literales de cadena se especifican encerrando una secuencia de caracteres entre un par de comillas dobles.
“Hola Mundo”
“cinco/nlineas”
“Esto es una cadena”,”Hola mundo/n”
Declaración de variables e inicializaciones
Las variables son unidades básicas de almacenamiento en Java .Una variable se define por la combinación de un identificador, un tipo y un inicializador opcional. Además las variables tiene un ámbito que define su visibilidad y una duración.
Para declarar una variable, indicaremos el tipo de dato, y a continuación, el nombre de la variable; es posible declarar mas de una variable a la vez
byte hora;
int k, cod;
long p1;
double precio=23.4, iva=0.16, importeTotal;
edad=25; importeTotal=precio*iva+precio;
char cad_2;
Las variables se pueden modificar mediante indicadores.
Public | La clase o variable de instancia es accesible desde todos los ámbitos. |
Protected | La clase o variable de instancia es accesible solo en el ámbito actual de la clase ,el ámbito del paquete actual y todas las subclases de la clase actual. |
Private | La clase o variable de instancia es accesible solo en el ámbito actual de la clase. |
Final | La variable es una constante ,de modo que su valor no se puede modificar. |
Static | La variable es una variable de clase, compartida entre todos los objetos instancia de una clase. |
Transfert | Se declara que no es parte de un estado persistente del objeto . |
Volatile | Se necesita a veces cuando se utiliza una variable instancia por ¿¿ para prevenir al compilador de su optimización. |
Asignación.
Podemos asignarle valor a una variable durante su definición, o posteriormente, con la estructura:
variable = expresión;
Donde «expresión» puede ser cualquier expresión en Java que devuelva un valor acorde con el tipo de dato de la variable.
Ejemplos:
int p, k, v;
p = 30;
k = p + 20;
v = k * p;
Podemos ver todo esto, modificando la clase que creamos en el articulo anterior, dejándola asi:
System.out.println("HOLA MUNDO"); System.out.println("Pruebas de tipos"); char c='A'; double precio=23.4; double iva=0.16; double importeTotal; importeTotal=precio*iva+precio; System.out.println("Caracter: "+c); System.out.println("Equivalencia Unicode: "+(int)c); System.out.println("Importe Total=: "+importeTotal); System.out.println("Primavera\nVerano\nOtoño\nInvierno"); System.out.println("Lun\tMar\tMie\tJue\tVie"); System.out.println("Lun\\Mar\\Mie\\Jue\\Vie"); System.out.println("\"Cocodrilo\"");
Si ahora le dais RUN, veréis en la consola de eclipse:
HOLA MUNDO Pruebas de tipos Caracter: A Equivalencia Unicode: 65 Importe Total=: 27.144 Primavera Verano Otoño Invierno Lun Mar Mie Jue Vie Lun\Mar\Mie\Jue\Vie "Cocodrilo"
Declaración de datos de tipo constantes
Para declarar un dato de tipo constante se utiliza la palabra reservada final como en el siguiente ejemplo:
final float PI=3.1416F;
Conversión de tipos y modelado
Cuando un tipo de dato se asigna a otro tipo de variable tiene lugar una conversión automática de tipos si se cumplen las dos condiciones siguientes:
- Los dos tipos son compatibles
- El tipo destino es más grande que el tipo fuente.
double a=6.0; float b; b=(float) a;
- Las variables primitivas nunca se pueden modelar a un objeto clase
String objStr=(string)0, //err - Para convertir un entero a una cadena ,añadir un literal de cadena vacía.
String objStr=0+¨¨; // el operador + concatena
ARRAYS
Un array es un grupo de variables de tipos similares que se conocen con un nombre común. Los diferentes elementos contenidos en un array se definen por un índice y se acceden a ellos utilizando su índice; los índices arrancan en 0. Los arrays pueden ser multidimensionales y al igual que los objetos de la clase se crean utilizando la palabra new
Se pueden definir un array con la siguiente sintaxis:
Tipo variable nombreArray[ ]=new tipo Variable[logArray];
Tipo Variable[ ] nombreArray=new tipovariable[longArray];
Por ejemplo:
diaMes=new int[12]; // array de 12 enteros
diaMes[0]=31 //cargo el valor 31 en el primer elemento
También es posible inicializar el array en el momento de la definición
int[] diaMes={31,28,31,30,31,30,31,31,30,31,30,31};
Arrays multidimensionales
En Java , los arrays multidimensionales son realmente arrays de arrays.
tipovariable [ ] nombrearray=[val1,val2,…valn];
Esta sentencia crea un array de n. elementos y lo inicializa conlos valores contenidos entre llaves.
La sintaxis completa es:
Tipovariable[ ] nombreArray=new tipovariable[ ]{val1,val2,…valn}
Ejemplo
int dosD[ ] [ ] new int[4][5];
Esta sentencia asigna un array de enteros ,4 por 5 y lo asigna a dosD
Sintaxis alternativa de declaración de arrays
Tipo[ ] nombre_var
Las siguientes declaraciones son equivalentes
int a1[ ]=new[int3];
int [ ] a20newint[3];
Las siguientes dos declaraciones son también equivalentes
char mod1[][]=new chat[3][4],
char [][]mod2=new char[3][4]
La variable lenght
Todos los arrays unidimensionales tienen una variable de instancia denominada lenght asociada con ellos. Esta variable contiene la longitud del array. En el caso de arrays bidimensionales, La variable lenght se utiliza para acceder a la longitud de la primera fila.
Nuestro siguiente articulo: Eventos asíncronos: Bucle de comprobación e interrupciones
12 comentarios