基本数据类型: 4类8种
引用数据类型: 类,数组,接口,Lambda等
容器:杯子,衣柜,教室
数组:
概述:数组其实也是一个容器,可以用来存储固定个数相同类型的数据
数组中存储的数据叫做元素
特点:
-
数组是引用数据类型
-
数组的长度是固定的,也就是说可以存储固定个数的数据
-
数组中的元素的类型必须一致,也就是说数组中存储的多个数据的数据类型一致
数组的定义:
定义数组有2种方式:
-
动态方式(指定数组长度)
-
静态方法(指定数组元素)
动态方式:创建数组的时候,指定数组的长度,不指定数组的元素
格式: 数据类型[] 数组名 = new 数据类型[长度];
格式解释:
左边的数据类型: 数组中元素的数据类型
[] : 代表数组,也就是说在java中凡是看到中括号就是数组
数组名: 其实本质就是变量名,代表数组的名称
= : 赋值符号
new : 代表创建数组的动作
右边的数据类型: 和左边的数据类型一致
长度: 代表数组能存储多少个元素,是一个int类型的数据
静态方式创建数组:
定义数组有2种方式:
-
动态方式(指定数组长度)
-
静态方法(指定数组元素)
静态方式创建数组: 创建数组的时候,不指定数组的长度,而是直接指定数组的元素
标准格式:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,元素4,...};
省略格式:
数据类型[] 数组名 = {元素1,元素2,元素3,元素4,...};
注意:
1.如果使用静态方式创建数组,那么系统会根据元素的个数自动计算数组的长度
2.静态方式创建数组右边的中括号里面不能写长度
3.静态方式的省略格式创建数组不能先声明后赋值,只能声明的同时直接赋值
数组的访问: 通过索引访问数组中的元素
格式: 数组名[索引]
索引:每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号称为数组索引(index)
数组的访问:
1.取出数组中的元素
2.修改数组中的元素
3.往数组中存储元素
注意:
1.直接打印数组名,打印的是数组的地址值
2.索引是从0开始,一直到"数组长度-1" 最大的索引是: 数组长度-1
3.动态方式创建数组,数组中的元素有默认值
整数类型的默认值都是 0
浮点型的默认值是 0.0
字符型的默认值是 '\u0000'
布尔型的默认值是 false
引用数据类型的默认值是 null
4.静态方式创建数组,数组中的元素也有默认值,只不过一初始化就被覆盖了
数组的长度: 数组名.length 返回的是数组长度,是一个int类型的值
内存:是计算机中的重要原件,临时存储区域,作用是运行程序。
我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。
Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。
栈区: 一般用来存储局部变量,或者方法的执行会加载到栈区
局部变量:方法中的形参,以及方法{}中定义的变量
堆区: 一般用来存储new出来的东西
方法区: 一般用来存储.class文件
寄存器: 给cpu使用的
本地方法区: 与系统相关的 jvm
数组常见异常: 产生异常之后会导致程序结束
数组索引越界异常: ArrayIndexOutOfBoundsException
产生的原因: 访问了不存在的索引
更改: 不要访问不存在的索引
数组空指针异常:NullPointerException
产生的原因: 数组类型变量没有指向任何数组
更改: 不要让数组类型的变量赋值为null
数组作为方法的参数:
方法的形参: 其实本质就是在声明变量
数组是引用数据类型,引用数据类型也是数据类型,所以可以作为方法的参数
数组作为方法的返回值
数组是引用数据类型,引用数据类型也是数据类型,数组类型可以作为方法的返回值类型
结论:
-
数组作为方法的参数传递,传递的是地址值
-
数组作为方法的返回值,返回的是地址值