0
点赞
收藏
分享

微信扫一扫

【java】java基础-数组相关知识

文章目录

一、数组

数组: 是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。

  • 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。
  • 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是 这块连续空间的首地址。
  • 数组的长度一旦确定,就不能修改。
  • 我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快。
  • 分类:按维度分为一维、二维等;按照元素的数据类型分为基本数据类型元素的数组、引用数据类型元素的数组(即对象数组)。

二、数组的使用

1.一维数组

①如何对一维数组进行声明和初始化?
–首先指明数组元素类型,由于数组本身是引用数据类型,所以需要new。如

int[] ids;//声明为int型数组
ids = new int[]={21,22,23};//初始化

以上为静态初始化过程(数组元素为基本数据类型,数组初始化和数组元素的赋值操作同时进行);
对于动态初始化(数组初始化和数组元素的赋值操作分开进行),则写法为

String[] names = new String[5];

②如何获取数组长度及遍历数组?

String[] names = new String[3];
names[0] = "张三";
names[1] = "李四";
names[2] = "王五";
System.out.println(names.length); //打印出该数组长度
for(int i = 0;i<names.length;i++) //遍历输出
 {
	System.out.println(names[i]);		
 }

③对数组的内存解析
内存的简化: 简单分为栈和堆,栈中存的局部变量(放方法中的变量均为局部变量),堆中存的new出来的结构,如图(参考尚硅谷学习)。
内存
理解分析: 右上角为示例部分代码,以第一行为例分析,arr在main方法中,是局部变量,存入栈中;右侧new出了长度为3的数组,存入堆中;三个连续的单元有首地址值,假设为0x34ab(十六进制),会将其赋给栈空间中的arr,则其会通过此地址值找到堆中的数组,从而联系起来;然后进行赋值为1 2 3(因为默认为0 0 0)。
内存解析

2.多维数组

分析二维数组:可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。
①声明与初始化
静态初始化:

int[][] arr1 = new int[][]{{2,3,4},{2,5},{1,2,3,4}};

动态初始化:

int[][] arr2 = new int[3][2];

②长度与遍历

//获取数组长度
int[][] arr3 = new int[][]{{2,3,4},{2,5},{1,2,4}};
	System.out.println(arr3[].length);//3	
	System.out.println(arr3[0].length);	//3
	System.out.println(arr3[1].length);	//2
	for(int i = 0;i<arr3.length;i++) //遍历输出
 {
 	for(int j = 0;j<arr3[i].length;j++) {
 	System.out.print(arr3[i][j]+" ");	
 	}		
 }
举报

相关推荐

0 条评论