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
The null references do "take up space" -- the array's memory is allocated up-front in one chunk, and zeroed (to make all of the contents null references). As an exercise, try allocating a huge array, one that will take up more space than your JVM's memory limit. The program should immediately terminate with an out of memory error.
I think this will be helpful to you
public static void main(String[] args) {
Runtime r = Runtime.getRuntime();
System.gc();
System.out.println("Before " + r.freeMemory());
Object[] objArr = new Object[10];
System.out.println("After " + r.freeMemory());
objArr[0] = new Integer(3);
System.gc();
System.out.println("After Integer Assigned " + r.freeMemory());
}
Output
Before 15996360
After 15996360
After Integer Assigned 16087144