level 6
Zebe_32
楼主
关于一点点对内存中“堆”的理解,不知道是不是对的?据说java中所有new出来的东西,都是放在heap里面的。看下面这张图:

首先,Dog dog1 ,程序说:“给我一块内存,我要放一只狗!”heap正在工作,突然听到了请求,就给了程序一块空白的内存,里面什么也没装。
然后,dog1 = new Dog() ,程序弄了一只狗出来,再把这只名叫 dog1 的狗放到内存里,heap 看到了这只狗,于是把它放到了那块内存中。
很快地,程序马上弄了两只猫出来,又对heap说,“我这还有两只猫, 你给我找地方放一下。” heap 看到了,又直接给了两块内存把猫放下。
最后,程序说:“我忘了还有一只狗,麻烦你再帮我找地方放一下吧?” 于是,heap 又给了一块内存把狗放下。
2013年03月24日 08点03分
1

首先,Dog dog1 ,程序说:“给我一块内存,我要放一只狗!”heap正在工作,突然听到了请求,就给了程序一块空白的内存,里面什么也没装。然后,dog1 = new Dog() ,程序弄了一只狗出来,再把这只名叫 dog1 的狗放到内存里,heap 看到了这只狗,于是把它放到了那块内存中。
很快地,程序马上弄了两只猫出来,又对heap说,“我这还有两只猫, 你给我找地方放一下。” heap 看到了,又直接给了两块内存把猫放下。
最后,程序说:“我忘了还有一只狗,麻烦你再帮我找地方放一下吧?” 于是,heap 又给了一块内存把狗放下。