Managing and understanding memory
In Chapter 4, Structuring Code with Java Methods, we learned a bit about references. Here is a quick recap.
References refer to a place in memory where the storage of the variable begins but the reference type itself does not define a specific amount of memory used. The reason for this is straightforward.
We don't always know how much data will be needed to be stored in memory until the program is executed.
We can think of strings and other reference types as continually expanding and contracting storage boxes. So, won't one of these string reference types bump into another variable eventually?
If you think about the device's memory as a huge warehouse full of racks of labeled storage boxes, then you can think of the ART system as a super-efficient forklift truck driver that puts the distinct types of storage boxes in the most appropriate places.
If it becomes necessary, the ART will quickly move stuff around in a fraction...