数组

数组是存储数据的容器,长度固定,且只能存储相同类型的数据

  既可以存储基本类型数据,又可以存储引用类型数据

 

数组的定义

1.动态初始化

 在定义数组时只指定数组的长度,由系统自动为元素赋初值(创建出的数组对象是存在于堆中的,有默认值)

 格式:

 数据类型[]  数组名 = new 数据类型[n];  //n指数组的长度

 

2.静态初始化

在定义数组的同时就为数组的每个元素赋值。数组的静态初始化有两种方式,具体格式如下:

1、类型[] 数组名 = new 类型[]{元素,元素,……};

2、类型[] 数组名 = {元素,元素,元素,……};

注意第一种方式中括号里不能写数组的长度,否则会编译失败,因为编译器认为你写的数字可能和后面元素的个数不符,存在安全隐患

 

小结:

1.定义数组后,数组元素就都有了默认值,根据存储元素的类型不同,默认值不同(如int类型的数组,默认值为0)

2.数组长度可以由length属性获得

3.数组通过索引来访问数组元素,索引从0 开始,最大的索引是 n-1

4.arr保存的是数组的首地址

5.int[] arr 与int arr[] 这两种写法都是可以的,Java一般采用第一种写法,C语言一般采用第二种写法

 

 

二维数组

二维数组是一个包含多个一维数组的数组,它的每个元素都是一个一维数组

 

定义格式

格式1:

  数据类型[][] 数组名 = new 数据类型[m][n];

   m: 代表二维数组中一维数组的个数

   n: 代表每个一维数组中元素的个数

格式2:

  数据类型[][] 数组名 = new 数据类型[m][];

  m: 代表二维数组中一维数组的个数

  每一个一维数组通过赋值来确定数组长度

  以这种格式定义的二维数组如int[][] arr = new int[3][]; 是不能直接使用的,必须再初始化二维数组里面的一维数组如 arr[0] = new int[5]; arr[1] = new int[4];

 

格式3:

  数据类型[][] 数组名 = {{元素值1,元素值2,..},{元素值1,元素值2,..},..};

  

 

二维数组的内存

 

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

[3]:二维数组中,有3个一维数组

[2]:三个一维数组中,每个数组的长度为2

运行程序时在堆内开辟的空间图为

 

问题:

数组名保存的是数组的首地址,字符数组呢?

1 int[][] arr2 = { {1,2},{3,4,5},{6,7,8,9,10} };
2 String[] arr = {"abc","def"};
3 char[] c = {'a','b'};
4 System.out.println(arr2);
5 System.out.println(arr2[0]);
6 System.out.println(arr);
7 System.out.println(c);
[[I@4e25154f
[I@70dea4e
[Ljava.lang.String;@5c647e05
ab

  

转载于:https://www.cnblogs.com/shizunatsu/p/11534618.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值