3.1 数组概述
例:int[] arr
定义了一个int类型的数组,数组名是arr
数据类型[] 变量名 = new 数据类型[]{数据1,数据2,数据3·······}
例:int[] arr = new int[]{1,2,3}
- 格式二:
数据类型[] 变量名 = {数据1,数据2,数据3·······}
例:int[] arr = {1,2,3}
3.3.2 动态初始化
- 初始化时只指定数组长度,由系统为数组分配初始值
- 格式:数据类型[] 变量名 = new 数据类型[数组长度]
例:int[] arr = new int[3]
int —> 说明数组中元素为int类型
arr —> 数组名字
[] —-> 说明这是一个数组
new -> 为数组申请内存空间
3.4 内存分配
- java程序在运行时,需要咋内存中分配空间,为了提高运算效率,就对空间进行了不同的区域划分,因为每一片区域都有特定的处理数据方式的和内存管理方式。
- 栈内存:存储局部变量。就是定义在方法中的变量。arr使用完毕后立即消失。
- 堆内存:存储new出来的内容(实体,对象),数组咋初始化时,会为存储空间添加默认值。每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收。
整数 —> 0 ;
浮点数 —> 0.0 ;
布尔 —> false ;
字符 —> “” ;
引用数据类型 —> null ;
3.5 Array类
返回指定数组内容的字符串表示形式
- public static void sort(int[] a)
按照数字顺序排列指定的数组
public class Demo {
public static void main(String[] args) {
int[] arr= {5,6,2,8,1,3} ;
System.out.println(Arrays.toString(arr)); //[5, 6, 2, 8, 1, 3]
Arrays.sort(arr) ;
System.out.println(Arrays.toString(arr)); //[1, 2, 3, 5, 6, 8]
}
}
3.6 常见的问题
- 索引越界:
访问了数组中不存在的索引对应的元素,造成索引越界的问题
- 空指针异常:
访问的数组已经不再指向堆内存的数据,造成空指针异常
- null:
空值,引用数据类型的默认值,表示不指向任何有效的对象