Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Duda] Tengo dudas con los primitivos

Entiendo que cuando uno usa el tipo de dato primitivo, y hace la comparación con ==, el comprara la referencia en memoria y por esta razón dice que son iguales. Ahora bien, en el video de la clase donde hacen referencia a esto, el instructor dice, cuando se crea una variable primitiva tu dices algo como

int numero1 = 2; int numero2 = numero1;

"Cuando tenemos variables del tipo primitivo, realmente se hace una copia. Es decir, tenía un número en numero1 y para numero2 realicé una copia de ese numero1. Entonces, tanto numero1 como numero2 tienen un valor que son independientes. Si yo modifico numero2, numero1 no va a ser modificado y viceversa."

El dijo básicamente que se crea un espacio en memoria nuevo para numero2, sin embargo, ¿Por qué al hacer la comparación con el == apunta a la misma referencia en memoria? es lo único que me genero dudas.

1 respuesta

Hola Andres,

El operador == no compara referencias en memoria cuando se trata de tipos primitivos. En lugar de eso, compara los valores almacenados en esas variables.

¿Por qué no se compara la referencia en memoria? Con los tipos primitivos, no se trabaja con referencias (como sí sucede con objetos). Lo que el instructor probablemente quiso decir es que, aunque al copiar el valor de una variable primitiva se asigna un nuevo espacio en memoria, cuando usas == para comparar tipos primitivos, no comparas las direcciones de memoria. Solo comparas los valores directamente.

Espero te haya ayudado. Si es asi por favor marca como solucionado.