Complete the Primitive types vs references exercises before reviewing the solutions.
Review the primitive exercise solution with AP CS Tutor Brandon Horn.
Original code
int x = 5;
int y = 6;
x = y;
y = 7;
System.out.println(x);
System.out.println(y);
Output
6
7
Explanation
Primitive type variables store their values directly. The original value of x
is 5
.
The statement x = y;
(read x
is set to y
) sets the value of x
to a copy of the value of y
. When the statement is run, the value of y
is 6
. The value of x
is set to 6
. The statement does not link x
and y
.
The statement y = 7;
affects only the value of y
. The value of x
remains unchanged.
Step by step memory diagram
Step 1
int x = 5;
Memory diagram after Step 1
x: 5
Step 2
int x = 5;
int y = 6;
Memory diagram after Step 2
x: 5
y: 6
Step 3
int x = 5;
int y = 6;
x = y;
Memory diagram after Step 3
x: 6
y: 6
Step 4
int x = 5;
int y = 6;
x = y;
y = 7;
Memory diagram after Step 4
x: 6
y: 7
Step 5
int x = 5;
int y = 6;
x = y;
y = 7;
System.out.println(x);
System.out.println(y);
Memory diagram after Step 5
x: 6
y: 7
Output after Step 5
6
7