JAVA数组详细讲解

1.概述
数组是一组数据的集合,数组中的每个数据被称为元素。在java中,数组也是对象。数组中的元素可以是任意类型(基本类型和引用类),但同一个数组里只能存放类型相同的元素。

数组类型的变量、类类型的变量、接口类型的变量都属于引用类型的变量,这些变量都是可以指向其相应的对象的,那么数组类型的变量指向的就是数组对象。

之前我们接触到的第一个数组类型变量,应该就是main方法的参数
public static void main(String[] args){
}
其中 String[] 就是一个数组类型,args就是这个数组类型的变量,它所指向的数组象中只能存放String类型的数据。
注:main方法是由JVM负责调用,那么args所指向的数组对象也是由JVM负责创建并传过来.
2.数组类型
8种基本数据类型和3种引用类型,使用这些都可以声明出数组类型
即:任意类型都可以声明成数组类型,只需要加"[]"即可
例如:
基本类型的数组:
byte[] short[] int[] long[] float[] double[] char[] boolean[]
引用类型的数组:
//使用类声明出的数组
Student[]
//使用接口声明出的数组
Action[]
//使用数组声明出的数组(也就是二维数组)
int[][]
注意:使用X类型声明出的数组,那么将来该数组中就只能存放X类型的数据
.3.创建数组对象
声明数组:
数据类型[] 变量名称;
eg:
String[] args; 推介使用
String args[]; 代码不报错,但是不使用
int[] arr;
Student[] stus;
思考,能不能在数组中存 {new Student(),“哈哈”,20}
Object[] objs;
Integer 是 int的引用类型表示形式,包装类
初始化数组:
两种初始化方式
根据长度进行初始化
args = new int[5];
根据元素的内容进行初始化
arr = new int[]{4,6,23,6};
访问元素,给元素赋值和取元素的值
数组变量名[下标]
赋值:arr[0] = 10;
取值:int temp = arr[0];
数组对象在内存中的位置:
数组对象也是java中的一种对象,但是和之前使用类创建出的对象还是一定区别的。
数组对象也存放在内存中的堆区,并且数组对象在堆区中是一块连续的内存空间,这其中的每一小块空间都可以存放我们要保存的一个数据(元素)。那么数组的长度指的其实也就是这个东西。
注:数据对象其实就是堆区中的一块连续的内存空间
数组对象中每个元素位置上的默认值:
数组对象中的默认值和其要保存的数据类型有关
例如:
int[] a = new int[4];
在我们存放数据之前,这四个元素位置上就以及有了默认值了
整型数组的默认值是 0
浮点型数组的默认值是 0.0
布尔类型数组的默认值是 false
字符类型数组的默认值是 0
引用类型数组的默认值是 null
1)数组对象的长度
数组的长度是指一个数组对象中可以存放多少个数据(元素)。
每一个数组对象在被创建的时候,就需要指明其长度是多少,并且该长度一定去的就不能再做修改。
2)数组对象的创建
创建数组对象使用new关键字即可。
例如:
int[] a = new int[4];
String[] str = new String[1];
//表示该数组对象中一个数据都存放不了
char[] c = new char[0];
//编译报错,因为创建数组对象的时候没知道其长度
long[] v = new long[];
3)获得数组对象的长度
使用数组对象访问其length属性即可获得该数组的长度
例如:
int[] a = new int[4];
System.out.println(a.length);//4
length只能够访问不能够修改
int len = arr.length; 对
arr.length = 10; 错
如果超出了数组的边界,则会报出异常,数组下标越界。
4.Java中的数组特点:
1)保存的是相同的数据类型,即可以保存引用类型,也可以保存基本类型;
2)数组的长度是固定的,一旦开辟空间则不可改变;
3)数组是有序保存的

二维数组:
可以理解为数组中保存了数组的类型
{{1,2,3},
{4,5,6},
{7,8,9}}
声明方式:
int[][] array;
new int[2][3];
new int[2][];
通过两个下标进行访问:
eg:int[2][3] = 10;
int[0][0] = 1;

遍历二维数组的方法:
	eg:定义一个二维数组int[][],遍历该二维数组。
	int[][] arr = new int[3][3];
	int k = 0;
	for(int i=0;i<arr.length;i++){
		for(int j=0;j<arr.length;j++){
			arr[i][j] = ++k;
			System.out.print(arr[i][j]+"\t");
		}
		System.out.println();
	}		
	结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200801093220506.png)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值