1、背景引入
我们从下面这段代码开始今天的内容:
有没有很眼熟呀,跟前面我们的代码差不多。只是这里稍微调整了一下,在main() 方法中,会循环调用 loadReplicasFormDisk() 方法。
我们来用内存分配的角度来用图示来描述一下上面的代码怎么运行的。
首先,一旦 main() 方法执行,那么就会把 main() 方法的栈桢压入 main 线程的Java 虚拟机栈中,如图:
接着,进入循环体中,会调用 loadReplicasFormDisk() 方法,就会把 loadReplicasFormDisk() 方法的栈桢也压入到 main 线程的Java 虚拟机里面去,然后图示就像下面这样:
然后,在 loadReplicasFormDisk()方法中,每次都会去堆里面创建 一个 ReplicaMa