Índice del curso de Java JSE

  1. Introducción
  2. Eclipse
  3. Resolución de problemas
  4. Clases
  5. Objetos
  6. Hola mundo
  7. Comentarios
  8. Variables
  9. Constantes
  10. Operadores
  11. Lectura de datos
  12. Estructuras de control
    1. Estructuras de control: if
    2. Switch
    3. Estructura de control: bucle for
    4. Estructura de control: bucle while
  13. Métodos
  14. Modificador static
  15. Arrays
  16. Ejercicio – juego del ahorcado
  17. Ejercicio - tres en raya
  18. Modificadores de acceso
  19. Constructores
  20. Herencia
  21. Polimorfismo
  22. Sobrecarga y sobreescritura
  23. Abstracción
  24. Interfaces
  25. Clases internas
  26. Garbage Collector
  27. String performance
  28. Encapsulamiento
  29. Contenedores
  30. Genéricos
  31. Ejercicio alta, baja, modificación y consulta en un ArrayList
  32. Ejercicio – juego de la oca
  33. Recorrer un map
  34. Sobreescritura del equals
  35. Sobreescritura del hashcode
  36. Sobreescritura del compareTo
  37. Excepciones
  38. Enumeraciones
  39. Hilos

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 cadenaModificable = new StringBuffer("Pepe");

tipos de variables

Características de las variables primitivas

TYPE CONTAINS DEFAULT SIZE RANGE
boolean true or false false 1 bit NA
char Unicode character \u0000 16 bits \u0000 to \uFFFF
byte Signed integer 0 8 bits -128 to 127
short Signed integer 0 16 bits -32768 to 32767
int Signed integer 0 32 bits -2147483648 to 2147483647
long Signed integer 0 64 bits -9223372036854775808 to 9223372036854775807
float IEEE 754 floating point 0.0 32 bits ±1.4E-45 to ±3.4028235E+38
double IEEE 754 floating point 0.0 64 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 de 32767: " + short_x);
System.out.println("2 - Conversión a short de 32768: " + short_y);
System.out.println("2 - Conversión a short de 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 de 32767: " + byte_x);
System.out.println("4 - Conversión a byte de 32768: " + byte_y);
System.out.println("5 - Conversión a byte de 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:
    1. Para dar valor a una variable de tipo double ponemos una "d" al final del valor.
    2. 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
icono de mandar un mail¡Contacta conmigo!
Pablo Monteserín
contacta conmigoPablo Monteserín

Para dudas técnicas sobre los ejercicios de mis cursos es necesario estar suscrito.