1.概念
数组是一组数据的数据的组合,将这些数据统一管理,是一个引用数据类型。
2.创建/声明
第一种方式:数据类型[] 数组名称; 例:int[] x;(推荐)
第二种方式:数据类型 数组名称[]; 例:int x[];
第三种方式:数据类型 []数组名称; 例:int []x;
3.赋值(初始化)
静态初始化 有长度 有元素
数据类型[] 数组名称 = new int[]{};
数据类型[] 数组名称 = {}; <===>数据类型[] 数组名称; 数据类型 = new 数据类型[]{};
动态初始化 有长度 没有元素
数据类型[] 数组名称 = new 数据类型[长度];
数组名称[索引] = 值;——->赋值
4.数组的操作(索引)
public class Test {public static void main(String[] args) {int[] x = {1,2,5,9,7};// int 变量名 = array[索引值];int value = x[4];System.out.println(value);}}>>> 7
public class Test {public static void main(String[] args) {int[] x = {1,2,5,9,7};// 变量[索引] = ;System.out.println(x[4] = 9);}}>>> 1 2 5 9 9
public class Test {public static void main(String[] args) {int[] x = {1,2,5,9,7};//普通for循环for (int i = 0;i < x.length;i++){System.out.println("我是普通for循环" + ":" + x[i]);}System.out.println("================");// 增强for循环for (int value:x) {System.out.println("我是增强for循环" + ":" + value);}}}>>> 我是普通for循环:1>>> 我是普通for循环:2>>> 我是普通for循环:5>>> 我是普通for循环:9>>> 我是普通for循环:7>>> ================>>> 我是增强for循环:1>>> 我是增强for循环:2>>> 我是增强for循环:5>>> 我是增强for循环:9>>> 我是增强for循环:7/**普通for循环和增强for循环的区别普通for循环1.有三个必要条件2.可以通过索引,直接访问数组的某一位置,存取值都可以3.写法比较麻烦增强for循环1.两个必要条件,没有index索引2.只能取值,不能存值3.找不到元素是哪一个4.写法容易*/
5.基本数据类型与引用数据类型在内存结构上的区别
变量空间存储在栈内存中
变量空间可以存储基本数据类型,也可以存储引用数据类型
如果变量空间存储的是基本数据类型,存储的是值,一个变量改变,另一个不会跟着改变
如果变量空间存储的是引用数据类型,存储的是地址,一个变量地址对应的值改变,另一个跟着改变
6.数组的特点
数组是一个引用数据类型
数组是在堆内存中的一串连续的地址存在
堆内存长度一旦确定,不能发生改变
栈内存的变量中存储的是数组的地址引用
数组内部存储的类型可以是基本的也可以是引用的
7.多维数组
1.多维数组的声明
2.多维数组的初始化
静态初始化 有长度 有元素
动态初始化 有长度 没有元素
数据类型[][] 数组名称 = new 数据类型[长度][长度];
3.二维数组的操作
public class Test {public static void main(String[] args) {int[][] x = {{1,2},{5,9,7}};int[] array = x[0];int value = array[0];System.out.println(value);}}>>> 1
public class Test {public static void main(String[] args) {int[][] x = {{1,2},{5,9,7}};// 普通for循环for (int i = 0;i< x.length;i++){int[] arr = x[i];for (int j = 0;j<arr.length;j++){int value = arr[j];System.out.println("我是普通for循环" + ":" + value);}}System.out.println("================");// 增强for循环for (int[] arr:x) {for (int value:arr){System.out.println("我是增强for循环" + ":" + value);}}}}>>> 我是普通for循环:1>>> 我是普通for循环:2>>> 我是普通for循环:5>>> 我是普通for循环:9>>> 我是普通for循环:7>>> ================>>> 我是增强for循环:1>>> 我是增强for循环:2>>> 我是增强for循环:5>>> 我是增强for循环:9>>> 我是增强for循环:7
