转:https://www.cnblogs.com/ibelieve618/p/6380328.html
JAVA在程序运行时,在内存中划分5片空间进行数据的存储。分别是:1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。
基本,栈stack和堆heap这两个概念很重要,不了解清楚,后面就不用学了。
以下是这几天栈和堆的学习记录和心得。得些记录下来。以后有学到新的,会慢慢补充。
一、先说一下最基本的要点
二、先明确以上两点,以下示例就比较好理解了
主函数main()中定义变量int x=1,show()函数中定义变量int x=1。最后show()函数执行完毕。
示意图如下:

——————————————————————————————————————————————————————————————————————
示例2
主函数main()中定义数组x,元素类型int,元素个数3。
示图如下:

——————————————————————————————————————————————————————————————————————
示图如下

——————————————————————————————————————————————————————————————————
示例4
main()
int[] x=new int[3];
int[] y=x;
y[1]=100
x=null;
以上步骤执行步骤
示图如下

——————————————————————————————————————————————————————————————————
示例5
虽然是个对象都引用new Car,但是是两个不同的对象。每一次new,都产生不同的实体

——————————————————————————————————————————————————————————————————
示例6
Car c1=c,这句话相当于将对象复制一份出来,两个对象的内存地址值一样。所以指向同一个实体,对c1的属性修改,相当于c的属性也改了。

三、栈和堆的特点
栈:
堆:
注:
什么是局部变量:定义在函数中的变量、定义在函数中的参数上的变量、定义在for循环内部的变量
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212026.html原文链接:https://javaforall.net
