Variables en Java

Contactar con el profesor

Una variable es un espacio de memoria cuya información puede variar durante la ejecución de la aplicación.

En java las variables son altamente tipadas.

Declaración:

int n;
int a,b,c;
<tipo> <identificador>; 
<tipo> <identificador_1>,  <identificador_2>...;
Asignación:
numero = 42;
<variable> = <expresión>;

La parte izquierda será una variable

La parte derecha puede ser un literal, una variable, una función o una combinación de todos.

Tipos de Variables

Primitivas

  • Sus valores se almacenan en el Stack.
  • int i = 1; Crea una variable en el stack que con el nombre i le pone en binario el valor 1.
  • Sólo puedo acceder al valor de i utilizando el nombre de la variable.

Referencias a objetos.

  • Sus valores se almacenan en el Heap.
  • La variable contiene la dirección en memoria del objeto, y no el propio objeto. Por tanto, es posible modificar un objeto mediante diferentes variables.

Stack y Heap: son dos zonas de memoria diferentes en la JVM.

Ej:
int i = 3;
StringBuffer c = new StringBuffer(“Pepe”);

Variables en Java 1
TYPECONTAINSDEFAULTSIZERANGE
booleantrue or falsefalse1 bitNA
charUnicode character\u000016 bits\u0000 to \uFFFF
byteSigned integer08 bits-128 to 127
shortSigned integer016 bits-32768 to 32767
intSigned integer032 bits-2147483648 to 2147483647
longSigned integer064 bits-9223372036854775808 to 9223372036854775807
floatIEEE 754 floating point0.032 bits±1.4E-45 to ±3.4028235E+38
doubleIEEE 754 floating point0.064 bits±4.9E-324 to ±1.7976931348623157E+308

Problema de conversión de tipos

Al convertir la información de un tipo de dato a otro tipo de dato en el que no cabe dicha información, el valor almacenado se verá modificado.

int int_x = 32767;
int int_y = 32768;
int int_z = 32769;
// El rango de un dato de tipo short llega hasta 32767

short short_x = (short) int_x;
short short_y = (short) int_y;
short short_z = (short) int_z;

System.out.println("1 - Conversión a short del int 32767: " + short_x);
System.out.println("2 - Conversión a short del int 32768: " + short_y);
System.out.println("2 - Conversión a short del int 32769: " + short_z);

byte byte_x = (byte) int_x;
byte byte_y = (byte) int_y;
byte byte_z = (byte) int_z;

System.out.println("3 - Conversión a byte del int 32767: " + byte_x);
System.out.println("4 - Conversión a byte del int 32768: " + byte_y);
System.out.println("5 - Conversión a byte del int 100: " + byte_z);

Output:
1 – Conversión a short de 32767: 32767
2 – Conversión a short de 32768: -32768
2 – Conversión a short de 32769: -32767
3 – Conversión a byte de 32767: -1
4 – Conversión a byte de 32768: 0
5 – Conversión a byte de 100: 1

El rango del tipo de dato short es: -32768 to 32767
El rango del tipo de dato byte es: -128 to 127

Casting

Una primitiva grande puede almacenar la información de una de menor tamaño.

Una primitiva pequeña puede almacenar la información de una de mayor tamaño, pero habrá pérdida de información.

El tipo de la variable apuntadora tiene que ser el mismo o más genérico que el tipo de la variable a la que apunta.

Animal animal = new Gato();

tipos de primitivas

Ejercicios variables

1. Declarar una variable ‘i’ de tipo int, una variable ‘d’ de tipo double y una variable ‘c’ de tipo char. Asignar un valor a cada una. Mostrar por pantalla el valor de cada variable utilizando tres llamadas a System.out.println(). Tener en cuenta que:

Para dar valor a una variable de tipo double ponemos una “d” al final del valor.

Para dar valor a una variable de tipo char, esta debe ir entre comillas simples.

2. Intercambiar el contenido de dos variables

int a = 5;
int b = 7;
// aquí hay que poner código
System.out.println(a); //Debería mostrar 7
System.out.println(b); //Debería mostrar 5
Ver preguntas
← Comentarios
Constantes →

Aviso Legal | Política de privacidad