Java数组
一、数组的概述
/**
1、数组概述
A、数组:存储同一种数据类型多个元素的容器。
2、定义格式
A、数据类型[] 数组名;
B、数据类型 数组名[];
3、数组举例
A、int[] a;
B、imt a[];
*/
package com.arr;
public class Demo1 {
public static void main(String[] args) {
int[] a;
int b[];
}
}
二、数组的初始化之动态初始化
/**
1、数组的初始化概述
A、Java中的数组必须先初始化才可以使用。
B、初始化:就是为数组中的数组元素分配空间,并为每个数组元素赋值。
2、数组初始化之动态初始化
A、动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
1.格式:数据类型[] 数组名 = new 数据类型[数组长度]
B、数组的格式分析
1.数组长度:就是数组中元素的个数
2.数据类型:就是数组中数据的类型
3.new :为数组分配(开辟)内存空间
4.[] :说明这是一个数组。
C、注意事项
1、数组中的每个元素都是有编号的,并且是从0开始,最大编号是数组长度的-1。
2、数组中编号称之为索引,通过数组名访问数据的格式是:数组名[索引];
*/
package com.arr;
public class Demo2 {
public static void main(String[] args) {
int[] arr = new int[2];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
}
}
三、Java的内存分配与数组图解
![这里写图片描述](https://img-blog.csdn.net/20180107133227363?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5kcm9pZEJhc2VDYW1w/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
四、Java数组内存代码与图解
/**
1、Java数组中的内存图解
A、数组内存图解之一个数组:代码+图解
C、数组内存图解之两个数组:代码+图解
*/
package com.arr;
public class Demo3 {
public static void main(String[] args) {
/**
内存图解之一个数组
*/
int[] arr = new int[3];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
arr[0] = 1;
arr[1] = 10;
arr[2] = 20;
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
![这里写图片描述](https://img-blog.csdn.net/20180107133240654?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5kcm9pZEJhc2VDYW1w/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
五、数组指向另一个数组图解
package com.arr;
public class Demo4 {
public static void main(String[] args) {
/**
三个数组(两个栈变量指向同一个堆内存)
*/
int[] arr = new int[3];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
int[] arr2 = arr;
System.out.println(arr2);
arr2[0] = 1;
arr2[1] = 3;
arr2[2] = 5;
System.out.println(arr2[0]);
System.out.println(arr2[1]);
System.out.println(arr2[2]);
}
}
![这里写图片描述](https://img-blog.csdn.net/20180107133321121?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5kcm9pZEJhc2VDYW1w/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
六、数组的静初始化与使用
/**
A、静态数组的创建与使用
格式:数据类型[] 数组名 = {元素1,元素2,...};
B、举例
复杂版:int[] arr = new int{1,2,2};
简化版:int[] arr = {1,4,2};
*/
package com.arr;
public class Demo5 {
public static void main(String[] args) {
int[] arr = { 1, 2, 3 };
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
七、操作数组中常出的两个问题
package com.arr;
public class Demo6 {
public static void main(String[] args) {
/**
A、操作数组中常见的问题。
1、数组索引越界异常
java.lang.ArrayIndexOutOfBoundsException
2、数组空指针异常
java.lang.NullPointerException
*/
int[] arr = { 13, 4, 5 };
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
arr = null;
}
}