数组
1、数组的定义
1.1数组的概念
数组是存储同一种数据类型、多个元素的集合,也可以看成是一个容器。
数组即可以存储基本数据类型,也可以存储引用数据类型。
数组的本身就是一个类型,是一个引用数据类型
1.2数组的作用
可以存储同一个数据类型的多个数据
可以为数组中的元素分配编号
1.3数组的格式
数组类型[] 数组名 = new 数组类型[数组长度]
例如:
想要创建一个能够存储10个int类型数据的容器
int [] array = new int[10];
分为三个动作:
1、声明了一个数组(等号左边的)
2、创建一个数组对象,在内存中给数组分配存储空间(等号右边的 new部分)
3、给数组中的元素初始化一个相应的数据类型的默认初始化值
1.4内存分析
栈内存和堆内存
java程序在运行时如何分配内存空间
栈内存:存储的是基本数据类型的变量 、 对象的引用、方法
堆内存:存储new出来的实体、数组、对象
每一个实体都有内存地址值
实体中变量都有默认的初始化值
不同数据类型的初始化值不同
基本数据类型
引用数据类型
初始化值是null
1.5数组的初始化方式
动态初始化
就是为数组开辟连续的内存空间,并且为每个数组的元素赋默认值
格式:
数据类型[] 数组名 = new 数据类型[数组长度]
在创建的时候就指定了数组的长度
由系统给出默认的初始值
静态初始化
就是在创建时,给出存储内容,系统自动分配长度
格式:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,。。。,元素n}
简写格式:
数据类型[] 数组名 = {元素1,元素2,。。,元素n};
注意:静态初始化的简写格式不能先声明后指向,只能在一行书写
1.6数组中常见的异常
2、对数组的常见操作
2.1遍历
循环获取数组中的所有数据 -->遍历
循环初始化变量:是数组的角标
数组长度获取:数组名.length 获取当前数组的长度
最大角标的获取:数组名.length-1
2.2获取最值
2.3反转
2.4根据角标查询元素
2.5根据元素查询角标
3、算法
排序
也是比较 但是和求最值有些不同
3.1选择排序
3.2冒泡排序
3.3二分查表法