1.概念

数组是一组数据的数据的组合,将这些数据统一管理,是一个引用数据类型。

2.创建/声明

第一种方式:数据类型[] 数组名称; 例:int[] x;(推荐)
第二种方式:数据类型 数组名称[]; 例:int x[];
第三种方式:数据类型 []数组名称; 例:int []x;

3.赋值(初始化)

静态初始化 有长度 有元素

数据类型[] 数组名称 = new int[]{};
数据类型[] 数组名称 = {}; <===>数据类型[] 数组名称; 数据类型 = new 数据类型[]{};

动态初始化 有长度 没有元素

数据类型[] 数组名称 = new 数据类型[长度];
数组名称[索引] = 值;——->赋值

4.数组的操作(索引)

  1. public class Test {
  2. public static void main(String[] args) {
  3. int[] x = {1,2,5,9,7};
  4. // int 变量名 = array[索引值];
  5. int value = x[4];
  6. System.out.println(value);
  7. }
  8. }
  9. >>> 7
  1. public class Test {
  2. public static void main(String[] args) {
  3. int[] x = {1,2,5,9,7};
  4. // 变量[索引] = ;
  5. System.out.println(x[4] = 9);
  6. }
  7. }
  8. >>> 1 2 5 9 9
  1. public class Test {
  2. public static void main(String[] args) {
  3. int[] x = {1,2,5,9,7};
  4. //普通for循环
  5. for (int i = 0;i < x.length;i++){
  6. System.out.println("我是普通for循环" + ":" + x[i]);
  7. }
  8. System.out.println("================");
  9. // 增强for循环
  10. for (int value:x) {
  11. System.out.println("我是增强for循环" + ":" + value);
  12. }
  13. }
  14. }
  15. >>> 我是普通for循环:1
  16. >>> 我是普通for循环:2
  17. >>> 我是普通for循环:5
  18. >>> 我是普通for循环:9
  19. >>> 我是普通for循环:7
  20. >>> ================
  21. >>> 我是增强for循环:1
  22. >>> 我是增强for循环:2
  23. >>> 我是增强for循环:5
  24. >>> 我是增强for循环:9
  25. >>> 我是增强for循环:7
  26. /**
  27. 普通for循环和增强for循环的区别
  28. 普通for循环
  29. 1.有三个必要条件
  30. 2.可以通过索引,直接访问数组的某一位置,存取值都可以
  31. 3.写法比较麻烦
  32. 增强for循环
  33. 1.两个必要条件,没有index索引
  34. 2.只能取值,不能存值
  35. 3.找不到元素是哪一个
  36. 4.写法容易
  37. */

5.基本数据类型与引用数据类型在内存结构上的区别

变量空间存储在栈内存中
变量空间可以存储基本数据类型,也可以存储引用数据类型
如果变量空间存储的是基本数据类型,存储的是值,一个变量改变,另一个不会跟着改变
如果变量空间存储的是引用数据类型,存储的是地址,一个变量地址对应的值改变,另一个跟着改变

6.数组的特点

数组是一个引用数据类型
数组是在堆内存中的一串连续的地址存在
堆内存长度一旦确定,不能发生改变
栈内存的变量中存储的是数组的地址引用
数组内部存储的类型可以是基本的也可以是引用的

7.多维数组

1.多维数组的声明

数据类型[][] 数组名称

2.多维数组的初始化

静态初始化 有长度 有元素

数据类型[][] 数组名称 = {{},{}…..};

动态初始化 有长度 没有元素

数据类型[][] 数组名称 = new 数据类型[长度][长度];

3.二维数组的操作

  1. public class Test {
  2. public static void main(String[] args) {
  3. int[][] x = {{1,2},{5,9,7}};
  4. int[] array = x[0];
  5. int value = array[0];
  6. System.out.println(value);
  7. }
  8. }
  9. >>> 1
  1. public class Test {
  2. public static void main(String[] args) {
  3. int[][] x = {{1,2},{5,9,7}};
  4. // 普通for循环
  5. for (int i = 0;i< x.length;i++){
  6. int[] arr = x[i];
  7. for (int j = 0;j<arr.length;j++){
  8. int value = arr[j];
  9. System.out.println("我是普通for循环" + ":" + value);
  10. }
  11. }
  12. System.out.println("================");
  13. // 增强for循环
  14. for (int[] arr:x) {
  15. for (int value:arr){
  16. System.out.println("我是增强for循环" + ":" + value);
  17. }
  18. }
  19. }
  20. }
  21. >>> 我是普通for循环:1
  22. >>> 我是普通for循环:2
  23. >>> 我是普通for循环:5
  24. >>> 我是普通for循环:9
  25. >>> 我是普通for循环:7
  26. >>> ================
  27. >>> 我是增强for循环:1
  28. >>> 我是增强for循环:2
  29. >>> 我是增强for循环:5
  30. >>> 我是增强for循环:9
  31. >>> 我是增强for循环:7

4.二维数组在内存中的存储结构