Java一维数组及多维数组

本文详细介绍了Java中的一维数组和二维数组。一维数组包括声明、初始化、长度获取、元素访问以及for循环遍历。二维数组则涉及声明、存储分配和不规则数组的概念。文章强调了数组作为引用类型的特点,解释了数组变量之间的赋值实际上是引用赋值,以及如何通过new运算符复制数组。最后,讨论了数组的内存管理和释放。
摘要由CSDN通过智能技术生成
数组

​ 概念:

​ 1.数组(array)是具有相同数据类型的元素的有序集合;

​ 2.数组的元素个数称为数组长度、元素在数组中的位置称为元素的下 标;

​ 3.采用一个下标唯一确定一个元素的数组称为一维数组,两个下标唯一确定一个元 素的数组称为二维数组

​ 4.数组元素的类型既可以是基本数据类型,也可以是引用数据类型;

​ 5.Java的数组一般都是动态数组,声明数组变量之后,使用new运算符申请数组的 存储空间


一维数组

​ 1.声明方式2种:

​ 数据类型[] 数组变量 (常用)

​ 数据类型 数组变量[]

​ 2.使用new为数组分配空间

​ 数组变量 = new 数据类型[长度]

​ 3.数据长度length

​ 使用点运算符获得数据长度:数组变量.length

​ 4.数组元素表示及运算

​ 一维数组的一个元素由下标决定:数据变量[下标]

​ 下标是确定数组元素位置的表达式,取值范围为0~a.length-1

​ 5.数据声明时赋初值

int[] a = {x,y,z};

​ 6.Java对使用new运算符动态分配的存储单元都进行初始化,各数据类型获得初始 值

在这里插入图片描述

​ 7.for语句作用与数组的逐元循环(for each loop)

​ for(类型 变量 :数组)

​ 8.数组的引用模型

​ 引用数据类型的变量获得存储单元的方式都是动态的,需要使用new运算符申 请并动态获得存储单元(基本数据类型变量的获取方式都是静态的)

​ 数组为引用数据类型;当数组变量引用数组时,就是数组变量保存数组的引用 信息(包括该数组占用的存储空间的首地址、长度及引用计数等特性)

两个数组变量之间赋值称为引用赋值,传递的值是数组引用,并没有申请新的存储空间(只是改变了指向地址,并不是真的改变了数组的值)
此例子中,数组变量b引用a拥有的数组后,对数组b数组元素的操作将同时改变数组a的元素值,此时a == b true
int a[] = {1,2,3},b[]; 
b = a;
b[1] = 10; 
a == b //true
---
此时将a数组的所有元素复制到b数组,会再次给数组变量分配存储空间,
b = new int[a.length]
for(int i=0; i<a.length; i++){
    b[i] = a[i];
}
a == b //false
所以引用类型比较的是指向内存中的地址    

​ 9.通常,程序中不需要释放数组,Java会自动收回不在使用的数组占用的存储空 间,特殊需要时,可以将数组变量赋值为null(引用数据类型空值),释放数组 空间


二维数组

​ 概念:当数组元素又是数组时,则成为多维数组,常用的为二维数组(声明多维数组时需要表明数组的维数)

​ 1.声明二维数组:

​ 在声明二维数组变量及申请存储空间时,用括号运算符[][]标明二维

int arr[][]; //声明

arr = new int[4][5]; //申请4*5个存储单元

​ 或声明和存储空间写在一起:

int arr[][] = new int[4][5];

​ 或在声明时为二维数组赋初值,使用多层花括号:

int arr[][] = {{1,2,3},{4,5,6}};

在这里插入图片描述

​ 2.二维数组的引用模型:

在这里插入图片描述

​ 3.不规则的二维数组

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值