数组

  • 长度确定

  • 元素类型相同

  • 数组的变量属于引用类型,其本身就是对象,其元素相对于对象的成员变量,保存在堆中

数组的定义

    int[] nums; //主流
    int numss[];    //方便c和c++掌握java

    double[]a = new double[]{1, 2, 3};
	a.length;获得数组a的长度
        
    //根据有没有初始化区分
    int[] nums = {1, 2, 3}; //静态初始化
	int[] b = new int[10]; //动态初始化,包含默认初始化
  • 下标从0开始,a数组中三个元素的下标分别是0,1,2。长度 [0 - length - 1]

  • 数组的长度定义后不可更改

数组越界的报错

ArrayIndexOutofBounds

内存分析

  • 堆:存放new创建的对象(及其内容)和数组
  • 栈:基本数据类型(除了基本数据类型都是引用, 包括引用名,引用在栈内,真实内容在堆中)
  • 方法区:类class和static变量

Arrays 类

double[]b = new double[5];
double[]a = new double[]{1, 2, 3};

Arrays.sort(a);
Arrays.fill(b, 5);  //填充数组,全是5
Arrays.fill(b, 2, 4, 0);//数组[2-4]之间填充0
Arrays.equals(a, b);    //两个数组是否相等
Arrays.binarySearch(b, 5);  //二分查找b中是否有第二个参数
System.out.println(Arrays.toString(a)); //打印所有数组元素