I am still struggling to understand the circumstances when an instance name is stored on the stack and when it is stored on the heap. According to my Sun training, instance names are on the stack, pointing the instance on the heap. But if an instance has a class instance variable inside it, then perhaps that instance variable field points to another instance on the heap. Here we have the pointer inside the heap. I need to understand when the instance name is on the stack and when it is inside the heap. Also, is there just one stack or does each instance have a separate stack? Maybe that is my confusion. I am trying to resolve what I was taught at Sun, which is incomplete and confusing. I have a partial clarification from an expert, but I need more to understand this.