【Java03】Java中数组在内存中的机制

1. 内存中的数组

Java中的数组是一种引用类型数组变量(引用)数组元素在内存中是分开的。

Java中的数组变量其实就是指针。

如果想要访问数组元素,只能通过这个数组的引用变量(指针)来访问。

  • 实际数组对象在堆中;
  • 引用变量如果是局部变量,就在栈中(静态或全局变量也在堆上)。

访问数组元素,通过[]运算符。

堆内存中的对象不会随方法结束和销毁。只有没有任何引用变量引用它时,系统垃圾回收器才会在合适时候回收它。

2. 数组引用变量的赋值

public class ArrayInRam
{
  public static void main(String[] args)
  {
    int[] a = {1,2,3}; //静态初始化
    var b = new int[4]; //动态初始化
    // 此时a和b都是int[]类型,因此可以将a的值赋给b
    b = a;
  }
}

只要类型兼容,就可以让一个数组变量指向另一个实际的数组(指针的赋值)。

第5-6行:初始化4块内存:a,b是两个引用变量(指针),在栈上;另有长度为3和长度为4的两个数组,在堆上,如下图:

在这里插入图片描述

第8行:变量赋值。这实际上是让b指向a指向的数组对象。如下图:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值