 So, one of the things that we can do is we can pass arrays to methods just like we would any other data type, integers, doubles, char, strings. All we have to do is we have to just specify that it is in fact an array, but we run into a slight problem. If you remember, we have printed out an array before and it didn't turn out so well as you can clearly see. And the idea is that arrays are complex data types. Complex. Again, you see that everywhere, but they're also known as aggregate. If you want to hop on the internet for five seconds and look up what aggregate means, it just means it's a bundle of a collection of data types. That's what we're doing here. Now, why does that matter? Well, again, I tried to print an array and it screwed up. So the issue is we are doing something called passing by a reference. And again, arrays are complex, so I can't just pass by a reference. What happens is that I'm actually giving the memory address of this. I'm giving, instead of the values, which I would normally do inside of a traditional, I'm just giving it an int i or double i or char i. When I say int square brackets list, I'm giving it the memory address. Here's an example. Let's say for example, I have an array, 1, 2, 3, 4, and then I have a sum of double, which all I'm going to do in here is I'm going to double every single one of the arrays passed to it and then add them to total. Simple enough, right? For int i equals 0, i less than numbers dot length, i plus plus, all right, nothing two out of this world just yet, numbers at i equals numbers at i times 2, and total plus equals numbers at i. All right, respectable. When I'm done with that, I return total. Now nothing about that seems out of the ordinary, except for the fact, again, we are passing by a reference. Now, I'm going to come in here and I'm going to say int total, again, equals sum of double nums. Now, again, what I'm going to do is this is going to pass the number array to sum of double. The problem is instead of it passing the values 1, 2, 3, 4. It's passing the memory address of number, nums. Because of that, now when I do this direct manipulation to the array, that direct manipulation is persistent across my entire program, because, again, memory, there's only one spot in memory where my nums array is. Let me just even show that out a little bit more. For int i equals 0, i is less than nums.length, i plus plus, boom, system.out.print, nums at i plus a little comma just to separate my values. But the reason why I want to mention this is then I'm going to come in here right afterwards and do system.out.println, the sum of these numbers is total. All right, so now that I've built this out, let's apply it. So I come in here, let me get right in there, Java c, test.java, good, no compilation errors, test. 2, 4, 6, 8, the sum of these numbers is 20. Interesting. Okay, well, what happened to my 1, 2, 3, 4, you know, where'd they go? Again, they got manipulated. If I come in here and I mention that, I say system.out.println, I was, space plus nums at i, and then right after that, I say now I'm, I haven't changed numbers. Well, I did, yeah, I changed numbers here. But that stuff was pertinent, that persisted throughout the entire program. So as soon as I run this, again, I was 1, now I'm 2, I was 2, I'm now I'm 4, I was 3, now I'm 6, I was 4, now I'm 8. So those values up here that are 1, 2, 3, and 4 are now 2, 4, 6, and 8.