class arrayEg4
{
public static void main ( String[] args )
{
int[] valA = { 12, 23, 45, 56 };
int[] valB = new int[4];
valB[ 0 ] = valA[ 0 ] ;
valB[ 1 ] = valA[ 1 ] ;
valB[ 2 ] = valA[ 2 ] ;
valB[ 3 ] = valA[ 3 ] ;
}
}
In this example, the int in cell 0 of valA
is copied to cell 0 of valB
,
and so on.
This is just like an assignment statement
spot = source
where both
variables are of primitive type int
.
After the four assignment statements of the answer have executed,
each array contains the same values
in the same order:
The following statement does not do the same thing:
valB = valA ;
Remember that arrays are objects. The statement above will
merely copy the object reference in valA
into the object
reference variable valB
,
resulting in two ways to access the single array object:
The object that valB
previously referenced is now lost
(it has become garbage.)
Say that the statement valB = valA
had been executed,
resulting in the above picture.
What would the following print out?
valA[2] = 999; System.out.println( valA[2] + " " + valB[2] );