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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步