1 of 26

Lenguajes de Programación I

Práctico de Memoria

Ejercicio 8

2 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a);

System.out.println(b);

System.out.println(c);

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

3 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a);

System.out.println(b);

System.out.println(c);

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

4 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a);

System.out.println(b);

System.out.println(c);

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

  • Qué imprime el programa?

exe

cd

ce

a

c

b

RA Main

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

5 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a);

System.out.println(b);

System.out.println(c);

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

  • Qué imprime el programa?

exe

cd

ce

a

c

b

1

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

Heap

6 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a);

System.out.println(b);

System.out.println(c);

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

  • Qué imprime el programa?

exe

cd

ce

a

c

b

1

2

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

Heap

7 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a);

System.out.println(b);

System.out.println(c);

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

  • Qué imprime el programa?

exe

cd

ce

a

c

b

1

2

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

Heap

8 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a); //1

System.out.println(b);

System.out.println(c);

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

  • Qué imprime el programa?

exe

cd

ce

a

c

b

1

2

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

Heap

9 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c);

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

  • Qué imprime el programa?

exe

cd

ce

a

c

b

1

2

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

Heap

10 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

  • Qué imprime el programa?

exe

cd

ce

a

c

b

1

2

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

Heap

11 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

  • Qué imprime el programa?

exe

cd

ce

a

c

b

1

2

3

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

Heap

12 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a); //3

System.out.println(b);

System.out.println(c);

}

}

  • Qué imprime el programa?

exe

cd

ce

a

c

b

1

2

3

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

Heap

13 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a); //3

System.out.println(b); //2

System.out.println(c);

}

}

  • Qué imprime el programa?

exe

cd

ce

a

c

b

1

2

3

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

Heap

14 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a); //3

System.out.println(b); //2

System.out.println(c); //1

}

}

  • Qué imprime el programa?

exe

cd

ce

a

c

b

1

2

3

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

Heap

15 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a); //3

System.out.println(b); //2

System.out.println(c); //1

}

}

  • Qué imprime el programa?

exe

cd

ce

a

c

b

1

2

3

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Qué imprime el programa y por qué? Realice un gráfico de las variables en memoria con sus respectivos valores.

Heap

16 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = a; [1]

System.out.println(a);

System.out.println(b);

System.out.println(c);

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

  • ¿Cómo cambiaría la instrucción [1] para que se produzca garbage?

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

exe

cd

ce

a

c

b

1

2

3

RA Main

Heap

17 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = 1;

System.out.println(a);

System.out.println(b);

System.out.println(c);

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

exe

cd

ce

a

c

b

1

2

1

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Cómo cambiaría la instrucción [1] para que se produzca garbage?

Heap

18 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = 1;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a);

System.out.println(b);

System.out.println(c);

}

}

exe

cd

ce

a

c

b

1

2

1

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Cómo cambiaría la instrucción [1] para que se produzca garbage?

Heap

19 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = 1;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a); //3

System.out.println(b); //2

System.out.println(c); //1

}

}

exe

cd

ce

a

c

b

1

2

1

3

Garbage

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

  • ¿Cómo cambiaría la instrucción [1] para que se produzca garbage?

Heap

20 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = 1;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a); //3

System.out.println(b); //2

System.out.println(c); //1

for(int i = 0; i < 5;i++){

a = a+1;

System.out.println(a);}

}

}

  • Si a los cambios del inciso anterior se agregaran las siguientes sentencias al programa en [2], ¿cuántos bloques del heap quedarían en total como garbage y por qué?

for(int i = 0; i < 5;i++){

a = a+1;

System.out.println(a);

}

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

21 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = 1;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a); //3

System.out.println(b); //2

System.out.println(c); //1

for(int i = 0; i < 5;i++){

a = a+1;

System.out.println(a);}

}

}

  • Si se agregan las siguientes sentencias, ¿cuántos bloques son garbage?

exe

cd

ce

a

c

b

1

2

1

3

Garbage

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

Heap

22 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = 1;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a); //3

System.out.println(b); //2

System.out.println(c); //1

for(int i = 0; i < 5;i++){

a = a+1;

System.out.println(a);}

}

}

exe

cd

ce

a

c

b

1

2

1

3

Garbage

cd

ce

4

0

i

Garbage

RA Main

RA UA

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

//4

  • Si se agregan las siguientes sentencias, ¿cuántos bloques son garbage?

Heap

23 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = 1;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a); //3

System.out.println(b); //2

System.out.println(c); //1

for(int i = 0; i < 5;i++){

a = a+1;

System.out.println(a);}

}

}

exe

cd

ce

a

c

b

1

2

1

3

Garbage

cd

ce

4

1

i

Garbage

5

Garbage

RA Main

RA UA

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

//4, 5

  • Si se agregan las siguientes sentencias, ¿cuántos bloques son garbage?

Heap

24 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = 1;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a); //3

System.out.println(b); //2

System.out.println(c); //1

for(int i = 0; i < 5;i++){

a = a+1;

System.out.println(a);}

}

}

exe

cd

ce

a

c

b

1

2

1

3

Garbage

cd

ce

4

2

i

Garbage

5

Garbage

Garbage

6

RA Main

RA UA

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

//4, 5, 6

  • Si se agregan las siguientes sentencias, ¿cuántos bloques son garbage?

Heap

25 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = 1;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a); //3

System.out.println(b); //2

System.out.println(c); //1

for(int i = 0; i < 5;i++){

a = a+1;

System.out.println(a);}

}

}

exe

cd

ce

a

c

b

1

2

1

3

Garbage

cd

ce

4

3

i

Garbage

5

Garbage

Garbage

7

6

Garbage

RA Main

RA UA

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

//4, 5, 6, 7

  • Si se agregan las siguientes sentencias, ¿cuántos bloques son garbage?

Heap

26 of 26

public class Inmutables{

public static void main(String args[]){

Integer a = 1;

Integer b = 2;

Integer c = 1;

System.out.println(a); //1

System.out.println(b); //2

System.out.println(c); //1

a = 3;

System.out.println(a); //3

System.out.println(b); //2

System.out.println(c); //1

for(int i = 0; i < 5;i++){

a = a+1;

System.out.println(a);}

}

}

exe

cd

ce

a

c

b

1

2

1

3

Garbage

cd

ce

4

4

i

RA UA

Garbage

5

Garbage

Garbage

8

Garbage

7

Garbage

6

RA Main

Se tiene el siguiente programa en lenguaje JAVA. Se pretende analizar el comportamiento de las variables inmutables.

//4, 5, 6, 7, 8

  • Si se agregan las siguientes sentencias, ¿cuántos bloques son garbage?

Heap