如
A a = new A(); A中含有一个work方法,2个成员变量a,b。那么对应的内存分配为
则 a是分配在栈内存中。里面存放了一个指向堆内存中存放的new A()的地址。
new A()会导致在堆内存中分配一块空间,该内存中的A对象同时会含有a和b。
work()方法会在codesegment区中分配内存。
如果此时 A b = a;则表示把a的值复制给b,即b的值为a中保存的地址 作者: 小洋人最happy 时间: 2012-11-18 16:34
Java把内存划分成四种:heap(堆内存)、stack(栈内存)、data segment(静态变量或是常量存放区)、codesegment(方法区).