求java中的 堆和栈 的图解(java初学者)
发布网友
发布时间:2022-02-28 14:46
我来回答
共4个回答
热心网友
时间:2022-02-28 16:16
画图能力不行,就简单给你介绍下吧。
ary1和ary2都是你定义的int[]数组引用变量,在你定义的时候,内存会分配给他们一个地址,这个地址用栈内存存放。
而“=”号后面的给他们赋的值是也要放在内存当中,这时内存会把这些值放在堆内存当中。
而一个栈只能对应一个堆,也就是说,ary1 = { 1, 2, 3, 4 },但是当ary1 = {11,12,13,14}时,ary1就会改变。但是ary1 和 ary2 都可以 等于 同一个值。这就是一个堆可以被多个栈引用。
热心网友
时间:2022-02-28 17:34
堆内存用来存放由new创建的对象和数组。
在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。
在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。
引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象。
热心网友
时间:2022-02-28 19:08
在堆里面哦, 栈都是存一些变量。。。其实这个也不用深究的 实际开发不会遇到这些问题 手打哦 采纳吧
热心网友
时间:2022-02-28 21:00
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。
堆内存用来存放由new创建的对象和数组
所以是在栈中