容器: 将多个数据存储到一起。 这些数据成为该容器的元素。
数组: 存储数据长度固定的容器,数组的每个元素数据类型是一致。
格式一: 数据类型[] 数组名字 = new 数组存储的数据类型[长度]; 如:int[] arr1 = new int[3];
格式二:数据类型[] 数组名字 = new 数据类型[]{元素1,元素2…};如:int[] arr2 = int[]{1,2,3};
格式三:数据类型[] 数组名字 = {元素1,元素2…};如:int[] arr3 = {1,2,3};
数组名字:变量名 ; new:关键字 ; 长度:定长的,不可更改。
访问数组: 索引(index):存储到数组的元素,都自动拥有的编号。
数组的长度属性(length): 数组名.length; 最大索引值 = 数组名.length - 1;
元素赋值: 数组名[索引] = 数值; 获取元素: 变量 = 数组名[索引];
JVM的内存划分:
区域名称 | 作用 |
---|---|
寄存器 | 给cpu使用,与开发无关 |
本地方法栈 | JVM在使用操作系统功能时使用,与开发无关 |
方法区 | 存储可以运行的class文件 |
堆内存 | 存储对象或数组,new创建的都在这里 |
方法栈 | 方法运行时使用,比如main方法运行 |
数组内存图:
数组new内容存在堆内存中,数组名是数组的地址。
数组名arr = null;表示不允许操作数组,发生空指针异常。
数组遍历: 从数组索引0~length-1进行所有元素的获取。
当数组作为方法参数传递时,是传递数组内存的地址;数组作为方法的返回值时,返回的是数组的内存地址。
方法的参数为基本类型时,传递的是数据值;参数为引用类型时,传递的是地址值。