Java数组

多个相同类型数据按一定顺序排列的集合,这个集合具有统一的命名,并通过下标对这些数据进行编号管理

数组的特点

  • 数组本身是引用类型,详细描述查看:数据类型-引用数据类型

  • 创建数组对象会在内存中开辟一段连续的空间,而数组名所指代的引用值,就是该连续空间的首地址。

  • 数组的长度一旦确定,就无法修改

  • 我们可以通过下标的方式调用指定位置的元素,通过指针的移动来遍历,速度很快

  • 数组的下标从0开始,长度为n的数组,合法下标取值范围:0→n-1

  • 数组内的元素会根据其本身的数据类型进行默认初始化

一维数组

声明方式:

数据类型 数组名[]数据类型[] 数组名

初始化方式:

动态初始化:分配空间和赋值操作分开进行

int[] i=new int[2]int i[]=new int[2]

静态初始化:在定义数组的同时就赋值

int i[]=new int[]{1,2,3}int i={1,2,3}

public class Test{
  public static void main(String args[]){
    int[] s;
    s = new int[10];
    for ( int i=0; i<10; i++ ) {
      s[i] =2*i+1;
      System.out.println(s[i]);
    }
  }
}

当数组中存储的是原生类型时的内存解析:
在这里插入图片描述

当数组中存储的是引用类型时的内存解析:

在这里插入图片描述

当数组引用和实际数组断开引用关系,实际数组的长度依旧不变,但是变成了无效数组(垃圾),只能等待垃圾回收器进行回收

多维数组

多维数组的声明方式和一维数组的声明方式相似,几维就有几个[]

多维数组就是多个一维数组的套娃,每个一维数组的长度可以不同。因此在Java底层机制上来说,没有多维数组的概念。

声明方式:这里以二维数组举例

int[][] iint i[][]

动态初始化1:

int[][] arr = new int[3][2]

表达的意思:该二维数组中有三个组件(一维数组),每个一维数组中有两个元素

给第一个组件中的第一个元素赋值:arr[0][0]=23

动态初始化2:

int[][] arr=new int[3][]

表达的意思:该二维数组中有三个组件(一维数组),每个一维数组只是声明了,没有初始化(会默认初始化为null)

分别给三个组件进行初始化:

arr[0]=new int[3];arr[1]=new int[1];arr[2]=new int[2];

静态初始化

int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};

注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组

这种定义是允许的,这样定义的i没有进行初始化,j初始化了int[] i,j[]=new int[2][3];

增强工具类Arrays

具体说明查看:Arrays类–待增加

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Carl·杰尼龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值