06Java数组

数组是将类型相同的若干数据有序的形式组织起来的一种形式。数组中可以存放基本数据类型数据,也可以存放引用类型数据;而数组本身是引用数据类型。

数组的相关概念
数组名:数组的名称,用于区分不同的数组。
数组元素:数组中存放的数据
元素类型:数组要存储的元素的数据类型。
数组下标:对数组元素进行编号,每个元素在数组中的位置用下标或索引表示,下标是从0开始的
数组长度:数组中元素的个数,数组的长度一旦确定就不能被修改。

一、一维数组

  1. 定义
    type[] arrayName,type可以是基本数据类型和对象类型。
例如,声明一个int数组:
int[]  intArray; 或  int  intArray[];
  1. 初始化
    在定义数组时,只是声明了一个数组类型的变量,并没有为数组分配实际的内存空间,需要通过初始化操作来实现。
    (1)、静态初始化:将数组中所有的数据给罗列出来,使用大括号{}包起来,数据的排列顺序就是在数组中的存放数据。
在定义数组的同时对数组元素进行初始化:
int[] arr = {1,2,3,4,5,6,7};

(2)、动态初始化:使用运算符new为数组分配空间,格式如下:

//type是数组的类型;arrayName是数组名字;arraySize是数组的大小(长度)
type[] arrayName = new type[arraySize];
实例:
int[] arr = new int[3];
arr[0] = 1;
arr[1] = 2; 
arr[3] = 3;
当然也可以不用对其初始化,但是不初始化会有默认值,如整型的默认值都为0。
  1. 数组的特点
    (1)、数组是一个对象
    (2)、同一数组中元素具有相同类型
    (3)、同一数组中存放的数据元素是有序的
    (4)、数组一旦创建,其大小是不可变的

  2. 数组的应用

// 获取数组的长度,通过属性length
int[] arr = {0,1,2,3,4,5,6,7,8,9};
int len = arr.length;
//访问数组和赋值,因为数组是一个随机访问结构,可以用任意的下标访问指定的数据元素,不用按顺序访问。赋值的时候也是一样
arr[1] = 52;
arr[3] =12;
//遍历数组
for(int i = 0; i <arr.length;i++){
   System.out.println(arr[i]);
}
//foreach方式:没有下标变量;只支持从前往后循环
for(int i:arr){
   System.out.println(i);
}
  1. 数组下标越界异常
    数组下载超过了 [0,length)范围,就会抛出数组下标越界异常。例如
int[] arr = {0,1,2,3,4,5,6,7,8,9};
arr[-1]; //错误,数组下标从0开始
arr[11];  //错误,超出了数组的长度
arr[5];  //正确
  1. 数组内存分析
    基本类型数组和引用类型数组的内存空间是有一些区别的。
    (1)、基本类型数组创建对象时会在内存中开辟一块完整连续的空间,各数据的存储单元是连续有序的,而数组名中引用的是这块连续空间的首地址。
    例如 int[] arr = {2,4,6};在内存里的存储示意图基本类型

(2)、引用类型的数组在数组中分配的只是引用变量的空间,即类似于c语言的指针。所有对象的空间是额外分配的,这些引用变量将指向对象的实际存储位置。
引用类型

二、二维数组

规则的二维数组就是所有第二维数组的长度都是相等的。
二维数组相关演示如下

// 初始化
int[][] arr = {{1,2},{3,4},{5,6}}; //静态初始化
int[][] arr1 = new int[3][3];  //动态初始化,三行三列的数组
//访问二维数组
arr[1][1];  //取出来4
//遍历二维数组
for(int i = 0; i <arr.length;i++){
	for(int j = 0; j <arr[i].length;j++){
		System.out.println(arr[i][j]);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值