Day4
1. 数组
(1)定义格式:
A.数据类型[] 数组名;(推荐使用)
B.数据类型 数组名[];
(2)初始化的两种方式:
A.动态初始化:只给出长度,由系统给出初始化值
数据类型[] 数组名 = new 数据类型[数组长度];
B.静态初始化:给出初始化值,由系统决定长度
数据类型[] 数组名 = {元素1,元素2,元素3,…};
(3)常见问题:
A. ArrayIndexOutOfBoundsException:数组索引越界异常
产生原因:访问了不存在的索引
B. NullPointerException:空指针异常
产生原因:数组已经不再指向堆内存的数据了,你还使用数组访问堆内数据
2. Java中的内存分配:
A. 栈(存储局部变量)
存储的是定义在方法中的局部变量,使用完毕后立即回收
B. 堆(存储new出来的东西)
a. 每一个对象都有地址值
b. 每一个对象的数据都有默认值(整型默认值0,浮点型默认值0.0,字符型'\u0000'(空字符),布尔型false,引用类型null)
c. 使用完毕后,会在垃圾回收器空闲的时候被回收
C. 方法区
D. 本地方法区(和系统相关)
E. 寄存器(给CPU使用)