一、栈是方法的执行区。当某个方法被调用时,该方法就进栈了。例如当虚拟机调用主函数时,我们就说主函数进栈了。主函数中的变量(即局部变量)都在栈这片内存中开辟空间。其他一般函数也是这样。
所以,我觉得你说那两句话应该是这样:1、栈是方法的执行区,方法区存储方法,至于本地方法区还没学到不了解。2、局部变量存在于栈内存中,随着所属区域运行而存在,结束而释放。
二、这个是毕老师总结的:
java分了5片内存。
1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。
栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );
只要数据运算完成所在的区域结束,该数据就会被释放。
堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。
1:每一个实体都有内存首地址值。
2:堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。
3:垃圾回收机制。
|