堆和栈 的区别

栈:自动回收

堆:1.内存地址  2.初始化默认值 3.垃圾回收机制

int a  = 5;  在栈中。

int[] b =null;  此时null 代表 不指向任何堆。

int [] c =new int[5];在堆中开辟一块空间。此时 c指一块内存地址。

=======================学习黑马java视频学习的,讲的很生动,又缕了一遍。一会该练吉他了

====以下为网上找的资料

1.在看例子之前,确保你理解以下几个术语:

:由JVM分配区域,用于保存线程执行的动作和数据引用。栈是一个运行的单位,Java中一个线程就会相应有一个线程栈与之对应。

:由JVM分配的,用于存储对象等数据的区域。

常量池:在编译的阶段,在堆中分配出来的一块存储区域,用于存储显式的String,float或者integer.例如String str="abc"; abc这个字符串是显式声明,所以存储在常量池

 

posted @ 2016-03-18 22:20  红色柠檬  阅读(140)  评论(0编辑  收藏  举报