What happens if you change the variable b
, or what if you change a
. What does the order have to do with anything.
I know count = count + 1
but the two variables is messing up my brain.
b = 7;
a = 7;
a = b;
a += 1;
What happens to b
?
What happens if you change the variable b
, or what if you change a
. What does the order have to do with anything.
I know count = count + 1
but the two variables is messing up my brain.
b = 7;
a = 7;
a = b;
a += 1;
What happens to b
?
What happens to
b
?
Nothing happens to b
.
When you do
a = b;
you're copying the value stored in b
and putting it in a
. (You're not making a
an alias of b
.)
When you then do a += 1;
you're changing the value stored in a
(and the value stored in b
remains unchanged).
You can verify this by printing the final values after your code snippet:
System.out.println(a); // prints 8
System.out.println(b); // prints 7
What happens if you change the variable
b
, or what if you changea
. What does the order have to do with anything.
a
and b
are two independent variables and changing one will never affect the other.
The order matters since when you do a = b
the value of b
is copied into a
and whatever a
stored before is discarded. If you had done a += 1
prior to a = b
, then a
would have been restored to 7 again.
int is raw type you don't copy reference but the value itself. This will work same way for Integer because it is immutable class.
int b = 7;
int a = 7;
a = b;
a+=1;
System.out.println(a);// ->8
System.out.println(b);// ->7
Still 7. integer is raw type and if you assign a int variable to another int, just its value is received by the new one. Not the object itself.
b stays 7.
a becomes 8.
You could use System.out.println();
to print values of variables and find out yourself if you ever doubt.
That or use the debugger.
public static void main(String[] args) {
int b = 7; // b points to 7
int a = 7; // a points to 7
a = b; // b and a points to 7
a += 1; // a points to 8 now, b is still pointing to 7
System.out.println(a);
System.out.println(b);
}
output
8
7
When we do a += 1;
we change the value stored in a
(value stored in b
is still same).