This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
Your basic assumption is invalid. You don't know that 40 bytes will be allocated -- you know that more than 40 bytes will be allocated, but you don't know how much more. A zero-element array does indded have a finite size, but the size is dependent on the JVM implementation, not something you can find out from the Java language itself.