ReferenceToVariableObserved

References can point to variables
References can only point to heap objects
CorrectionHere is what's right.
In Java, a reference either is null or it points to an object (or to an array).
References cannot point into the insides of an object/array,
they cannot point anywhere into the stack, and
they cannot point to global (static fields).
A variable holds a value, and in Java a value is either a value of a primitive type, or a reference to some heap object (note that an array also is considered a heap object).
In the example below, the assignment statement t = s does not store a reference to variable s in variable t!
int s = 3;
int t = s;Here, variable t will store the value that was stored in variable s.
That is, variable t will store the value 3.
OriginWhere could this misconception come from?
This misconception might stem from students who have some knowledge of C, where one can take the address of a variable, or of C++ references.