java 数组的创建以及数组的内存地址

/*
    数组:是一种容器,如果数据过多,定义变量就很多
          代码重复多,写很麻烦,数据多了存数组
    定义数组容器:
     定义数组容器,要素,强制数据类型的语言
     必须有数据类型,大小,就是存储数据的个数
     定义数组公式:
       数据类型[] 变量名 = new 数据类型[存储元素的个数];
       
            数据类型: 数组中存储元素的数据类型
            [] 表示数组的意思
            变量名 自定义标识符
            
            new 创建容器关键字
            数据类型:数组中存储元素的数据类型
            [] 表示数组的意思
            元素个数,就是数组中,可以存出多少个数据(恒定,定长)
        
        数组属于引用类型,
*/
public class ArrayDemo{
    public static void main(String[] args){
        //定义一个数组,存储整数,容器长度3个
        int[] arr = new int[3];
        System.out.println(arr);//[I@32784a [代表数组 I代表整数 @分隔符 后边内存地址十六进制
    }
}

1 首先.class 文件要进入数据方法共享区

2 执行main方法,此时进入方法栈(main方法进入栈内存运行叫做main压榨运行),在执行创建数组指令的时下一步

3 在堆里面创建一块内存区域,用以存储数组,但是这块内存区域相对于堆来说可能很小,不好找,所以要有一个地址

  方便查找,所以将数组内存中的首地址表示出来(0xAB),虚拟机将地址传给变量名arr,所以这就是引用类型,传的是

  引用,传的是地址,也就是理解成arr指向内存地址(类似于家庭的地址),每次运行可能地址都不一样,因为虚拟机开

  辟的内存空间可能不一样。

4 总结一句话 变量arr 实际是地址

5 当main方法完成,也就是程序整个运行完成,则会删除arr,数组内存也就没了。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值