javaobjectheap-memorystack-memorystatic-block

Where in memory are objects located when they are created within a static block?


If I create a static block and create an Object there, say of some other class, will the object be created on the heap or on the stack?

class Hello {
   static {
       Abc abcObject=new Abc();
   }
   // Other Code...
} 

Solution

  • The object is created in the heap, but the reference to the object is in the stack.

    The variable abcObject which you created is located in the stack. This contains a memory address within the heap where the new Abc() object is stored.