数组的概念:
一种容器,可以同时存放多个数据值
数组的特点:
1.数组是一种引用数据类型
2.数组中的多个数据,类型必须统一
3.数组的长度在程序运行期间不可改变
数组的初始化:在内存当中创建一个数组,并向其中赋予一些默认值
两种常见的初始化方式:
1.动态初始化(指定长度)
2.静态初始化(指定内容)
动态初始化数组格式:
数据类型[ ]数组名称=new数据类型【数组长度】;
创建时指定数组的长度
解析含义:
左侧数据类型:数组当中保存的数据,全都是统一的什么类型
左侧[ ]:代表一个数组
左侧数组名称:给数组命名
右侧new:代表创建数组
右侧数据类型:必需和左侧数据类型一致
右侧【数组长度】:数组当中可以保存多少个数据
例:int[ ] array=new int[300];
静态初始化数据格式:
基本格式:数据类型[ ]数组名称=new数据类型[ ]{元素1,元素2,…}
例:int[ ]array=new int[ ]{元素1,元素2,…}
省略格式:int [ ] array={元素1,元素2…}
注意:
1.虽然静态初始化没有直接说明长度,但可以由元素个数直接推算
2.动/静态基本格式初始化均可以拆成两个步骤:
int [ ]array;
array=new int[ ]{元素 }/new int[长度]
访问数组元素进行获取:
直接打印数组名称,得到的是数组对应的内存地址哈希值
可以直接打印数组当中的元素,也可以将某一个元素赋值给变量然后打印
{10,20,30}当中10,20,30对应数组第0,第1,第2个元素
动态初始化数组时,其中的元素将自动拥有一个默认值,规则如下:
整数类型为0,浮点类为0.0,字符类为‘\u0000’,布尔类为false,引用类为null
Java中的内存划分:
1.栈(Stack):
存放局部变量:方法的参数或者方法{}内部的变量,方法的运行一定要在栈当中运行
作用域;一旦超出作用域,立刻在栈内存中消失
2.堆(Heap):
凡是new后的东西都在堆中存放
堆内存里的都由一个地址值:16进制
堆内数据都有默认值: 整数类型为0,浮点类为0.0,字符类为‘\u0000’,布尔类为false,引用类为null
3.方法区(Method Area):存储.class的相关信息,包含方法的信息
4.本地方法栈(Native Method Stack):与操作系统相关
5.寄存器(pc Register):与cpu相关
数组索引越界异常
访问数组元素编号并不存在:ArrayIndexOutOfBoundsException
空指针异常
所有的引用类型变量都可以赋值为null,但啥也没有
只定义数组,没有创建或数组为null会出现空指针异常NullPointException
获取数组的长度
数组名称.length
将会得到一个int数字,代表数组长度
int len=array.length
数组的长度在程序运行期间不可改变
数组的遍历输出:对数组当中的每一个元素进行逐一处理,默认方式为打印输出
一个方法可以有多个参数,不能有多个返回值,如有多个结果进行返回,可用数组做返回值类型。
数组作为方法参数,传递进去的是数组的地址值
数组作为返回值类型,返回的也是数组的地址值