java中数组分配内存空间_Java数组内存-Java数组内存分配-Java数组内存空间-嗨客网...

Java语言数组结构教程

Java语言数组结构详解

堆栈内存解释

数组的操作中,在栈内存中保存的永远是数组的名称,只开辟了栈内存空间的数组是永远没有办法被使用的,必须有指向的堆堆内存数组才可以被使用,要开辟新的堆内存,需要使用 new 关键字。然后就可以将此堆堆使用权交给栈。一个堆内存空间可以被多个栈内存空间同时指向。

生活中的场景就是一个人,它可以有多个名字,而名字我们可以理解为栈,而人就相当于一个堆。

487b15b7f3cb29a0b0c45f0f2e308e76.png

数组堆栈

我们以一个代码为例子:

package com.haicoder.net.array;

public class ArrayTest{

public static void main(String[] args){

int[] scores = null; //定义一个数组

scores = new int[3]; //为每个数组分配内存空间

}

}

具体的内存分配图如下:

cc2066c9ef60d774a15457c01efee268.png

我们可以看到,scores 这个名词指向了堆里面的一块内存空间,它被分了三个连续的空间,里面的值都是 0 ,因为我们定义了 int 类型的数组,并且给它分配了空间,而 int 类型的默认值是 0 ,所以我们刚初始化的时候,数组就是这样的分配模型。

在后面对数组进行操作的时候,其实是对堆里面的数据进行操作。

Java语言数组总结

和普通类型不一样,数组类型是引用类型,它的名字存放在栈中,具体的数据,存放在堆中。

因为堆是可以被栈里面多个名字指向的,所以我们在实际工作中如果发现自己的数组值不是自己期望的数据,可以看下是不是被别的地方引用给修改了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值