Variables en Java

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

Curso de Java

11.  
22.  

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»);

Ver explicación
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); // Conversión a short de 32767: 32767
System.out.println("2 - Conversión a short del int 32768: " + short_y); // Conversión a short de 32768: -32768
System.out.println("2 - Conversión a short del int 32769: " + short_z); // Conversión a short de 32769: -32767

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); //  Conversión a byte de 32767: -1
System.out.println("4 - Conversión a byte del int 32768: " + byte_y); // Conversión a byte de 32768: 0
System.out.println("5 - Conversión a byte del int 100: " + byte_z); // Conversión a byte de 100: 1

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. Declara una variable de tipo entero y asígnale un valor.

int n = 7;

2. Declara una variable de tipo texto y asígnale un valor.

String txt = "Hola";

3. Declara una variable de tipo decimal y asígnale un valor.

float n = 3.4f;

4. Asigna el valor de la variable a a la variable b.

int a;
a = 7;
int b; // Sólo hay que modificar esta línea
System.out.println(b); // debería mostrar 7
float n = 3.4f;

5. Modifica las siguientes declaraciones de variables para que sean camelCase.

String TituloDeLaPelicula;
String  camelCaseBienPuesto;
int EDaddelMonstruo;
String tituloDeLaPelicula;
String  camelCaseBienPuesto;
int edadDelMonstruo;

6. ¿Cuanto valor tendrá i después de ejecutar el siguiente código?

int i = 7;
i = 5;
i = 3;
System.out.println(i); // ¿Cuánto valdrá i?
i = 3

7. 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.

8. 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