java 数组的内存分配

每一个软件都占用一定的内存空间。

栈与堆

java 内存分配

int变量例子

int等类型的变量无new关键字,不在堆中开辟空间,值直接在栈中赋给变量名。

数组的内存

数组的初始化则涉及到在堆内存中开辟新的空间(静态初始化的简写,eg:int[] array = {1,2,3},是省略了new int[]的,因此静态初始化也涉及开辟新的空间)。因此实际传递给变量名的实际上是在堆内存中的地址,而非是直接的数值。

在堆中新建的不同的数组互相独立。

但实际上,也存在两个数组指向同一个空间的内存图。

没有通过索引赋值,而是直接将arr1中记录的地址传递给了arr2,那么两个array指向的就是同一个堆中的空间。此时其中一个数组对内存中的值做了更新,那么通过另一个变量名进行访问的时候,得到的也是更新了的值。

本文作者:小澳子

本文链接:https://www.cnblogs.com/xiaoaozi/p/17020339.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   小澳子  阅读(294)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.