The Heap
The heap is an undifferentiated block of memory; an area of RAM in which your objects are created. When you declare an object (e.g., milo) you are actually declaring a reference to an object that will be located on the heap.
A reference is a variable that refers to another object. The reference acts like an alias for the object. When you allocate memory on the heap with the New operator, what you get back is a reference to the new object:
Dim milo As New Dog()
Your new Dog object is on the heap. The reference milo refers to that object. The reference milo acts as an alias for that unnamed object, and you can treat milo as if it were the Dog object.
You can have more than one reference to the same object. This difference between creating value types and reference types is illustrated in Example 18-1. The complete analysis follows the output.
Example 18-1. Heap versus stack
Module Module1 Public Class Dog Public weight As Integer End Class Public Sub Main() ' create an integer Dim firstInt As Integer = 5 ' create a second integer Dim secondInt As Integer = firstInt ' display the two integers Console.WriteLine( _ "firstInt: {0} second Integer: {1}", firstInt, secondInt) ' modify the second integer secondInt = 7 ' display the two integers Console.WriteLine( _ "firstInt: {0} second Integer: {1}", firstInt, secondInt) ' create a dog Dim milo As New Dog() ' assign a value to weight milo.weight = 5 ' create a second reference to the dog Dim fido As Dog = milo ' display their values Console.WriteLine( ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access