What is the memoy size of a Java object array after it has been created?
        Posted  
        
            by 
                brenns10
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by brenns10
        
        
        
        Published on 2012-11-13T04:54:40Z
        Indexed on 
            2012/11/13
            4:59 UTC
        
        
        Read the original article
        Hit count: 130
        
This probably doesn't even need asking, but I want to make sure I'm right on this. When you create an array of any object in Java like so:
Object[] objArr = new Object[10];
The variable objArr is located in stack memory, and it points to a location in the heap where the array object is located.  The size of that array in the heap is equal to a 12 byte object header + 4 (or 8, depending on the reference size) bytes * the number of entries in the array.  Is this accurate?
My question, then, is as follows. Since the array above is empty, does it take up 12 + 4*10 = 52 bytes of memory in the heap immediately after the execution of that line of code? Or does the JVM wait until you start putting things into the array before it instantiates it? Do the null references in the array take up space?
© Stack Overflow or respective owner