# Primitive exercise solution

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
``````