 Let's review what happens when you assign variables. If we set A to 22, an area of memory is assigned to that variable. When we say int B becomes A, a new area of memory is assigned to variable B, and the value in A is copied into that area. Arrays are different. When you create a new array as shown here, memory gets allocated for the array elements. What goes into the memory location associated with the variable A is a reference to where to find those elements. Arrays, like objects which we will learn about later, are reference types. This has implications for assigning arrays. When we do an assignment like this, Array B equals Array A. The reference is copied to Array B. Both of them are referring to the same area of memory. That means, when I set Array B sub 1 to 999, and then print Array A sub 1, it will also be 999. Here's the code in Java. Let's run it to show you that that's what's really happening. And sure enough it prints 999. So given this, how do we really make a new copy of an array, rather than two references to the same area of memory? Here are two methods. The first is to create a brand new array. This is a reference to a completely separate area of memory initialized to zeros. Then run a loop for the length of the original array to copy the contents. Now changing one array's contents doesn't affect the other array at all, because they're in two separate areas of memory. Another method is to create a brand new array, and we'll make one that is the same length as A by saying Array A dot length, and then use the System.ArrayCopy method. The System.ArrayCopy method has these parameters. The source array, the array that we're copying from, the starting index in that array, the destination array, the one we're copying to, the starting index in the destination, and the number of items to copy. Now if I set ArrayC sub 2 to 777, and I print ArrayA sub 2, it will be different than the contents of ArrayC sub 2. Let's clear our terminal, and run it again, and sure enough we have two different arrays. The important point to remember is that arrays are reference types. This will be important when we discuss objects, and also when we investigate passing arrays as arguments to methods.