In java, you cannot state an array’s size in its declaration
int[5] scores; //bad
I’m told this is because the JVM does not allocate space in memory until an object is initialized.
If you have an instance array variable (auto initialized with a default value of null), does that variable point to a place in the heap indicating null?
No, because in the JVM there’s no need for that.
If you’re in a native language (C and C++, for instance), NULL is a pointer with a zero value, and that points to the memory base address. Obviously that’s not a valid address, but you “can” dereference it anyway – especially in a system without protected memory, like old MS-DOS or small ones for embedded processors. Not that it would be a valid address – usually that location contains interrupt vectors and you shouldn’t touch them. And of course in any modern OS that will raise a protection fault.
But in the JVM a reference to an object is more like a handle (i.e. an index in a table) and null is an ‘impossible’ value (an index that is outside the domain of the table), so it can’t be dereferenced and doesn’t occupy space in such table.