关于这个问题,建议楼主看看这本书:《java virtual machine》
这上面有比较详细的描述:
3.4 Reference Types and Values
There are three kinds of reference types: class types, array types, and interface types. Their values are references to dynamically created class instances, arrays, or class instances or arrays that implement interfaces, respectively. A reference value may also be the special null reference, a reference to no object, which will be denoted here by null. The null reference initially has no runtime type, but may be cast to any type (§2.4).
这本书也有中文版,个人感觉:很不错(如果想深入了解jvm的话)