数组的声明与初始化

数组的声明与初始化

问题由来

int[] arrays;
//    arrays = {1,2};
//    arrays = int[2];
//    arrays = int[] {1,2};
 int[] arr=new int[] {2,3};

数组arrays声明后,无法进行初始化(或者说是我不知道如何进行初始化,qaq~)

深层剖析

1.初始化分为静态初始化和动态初始化

静态:int[] a = {1,2,3,4,5};
动态:int[] b=new int[5];

2.数组一定需要初始化吗

### 数组变量和数组对象是不同的
数组变量是引用类型的变量,数组变量是指向堆内存当中的数组对象,并不是数组本身(即并不分配内存空 
间);
所以,对于数组变量来说,它并不需要初始化,我们常常说的初始化其实是初始化数组对象,而并非数组变量,          
因此,我们不进行初始化,而让数组变量指向一个有效的数组对象,数组也是可以使用的;
eg
     int[] arrays;
//    arrays = {1,2};
//    arrays = int[2];
//    arrays = int[] {1,2};
 int[] arr=new int[] {2,3};
 arrays=arr;
   

总结

1.对一个数组进行声明后,就产生了一个数组变量,但数组变量不一定需要初始化,它只需要指向一个有效的数组对象即可
2.切记不可将数据直接赋给已声明的数组变量,因为数据变量只指向数组对象,即已分配内存地
址的数组/new了的数组。
3.那为什么静态初始化指向的是一堆数据,而不是数组对象呢
那是因为静态初始化是int[] a=new int[]{1,2,3,4,5};的简化

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值