day05_数组总结

96 阅读2分钟

JVM中的内存区域

  1. 方法区

    用于存储字节码(xxx.class)信息,也即类信息
    
  2. 方法执行时会在栈区分配内存空间
    
  3. 数组和所有对象的内存都分配在堆区。
    
  4. GC(垃圾回收器)

    当jvm内存空间不够用时,就会自动清理队中无用的对象所占用的空间
    

数组的作用

同类型: 数组中所有元素的数据类型相同

多个: 数组可以用来存储多个同类型的常量

有序: 索引 数组中是每个元素位置都有对应的索引,索引范围为[0,数组名.length-1]

数组的定义语法

元素类型[] 变量名;

int[] age;

元素类型 变量名[];(不推荐)

int age[];

数组的初始化

静态初始化:当明确添加到数组的元素时

语法:数据类型[] 数组名 = new 数据类型[] {};
简写:数据类型[] 数组名 = {};
例如:int[] arr = new int[] {1,2,3};
     int[] arr = {1,2,3};

动态初始化:当明确数组元素的个数,但是不明确具体的元素时

语法:

new 元素类型[]{元素1,元素2,,,,,,}//静态 new int[] {1,2,3};

new 元素类型[长度];//动态 new int[3];

数组的元素的操作

如何获取元素的个数

元素的个数=元素的长度 
在控制台中打印元素的个数
int[] arr = {1,2,3};
System.out.println(arr.length); // 输出3

如何获取数组中的元素

语法:数组名[索引]
例如:
int[] arr = {1,2,3};
System.out.println(arr[0]); // 输出1

注意事项: 索引越界

例如:
int[] arr = {1,2,3};
System.our.println("数组的长度为" + arr.length); // 数组的长度为3
// 该数组索引范围为[0,2]
System.out.println(arr[3]); // ArrayIndexOutOfBoundsException

如何为数组中的指定索引位置设值

语法:数组名[索引] = 数值;
int[] arr = {1,2,3};
arr[0] = 2;

操作数组过程中可能存在的问题和原因

数组索引越界异常: ArrayIndexOutOfBoundsException,操作数组的索引不在
[0,数组名.length-1]范围内

空指针异常: 当访问一个空引用变量中的成员时会发生空指针异常

int[] nums = null;//null表示空引用
int size = nums.length;//发生空指针异常
​
//排除空指针异常的最好的方式,做非空判断
if(nums != null) {
    int size = nums.length;
}

\