数组
概念:数组就是数据的集合,实质就是内存空间的连续表示,将连续的内存空间划分为若干个小空间
定义:1.数据类型 []数组变量=new 数据类型[整数];整数表示划分内存空间的个数
2.数据类型[]数组名={a,b,c……}
当分配一个连续的内存空间时,JVM会自动为每个空间提供一个唯一的编号----索引或者叫做下标、角标,由0开始分配
获取数组的长度:数组名.length
数组操作常见问题:
1.下标越界ArrayIndexOutofBoundsException
2.空指针异常NullPointerException
数组的内存分析:局部变量中的基本数据类型必须给初始值,而引用数据类型有默认的初始值
引用数据类型的默认值
int 0
double 0.0
float 0.0f
char ''
栈:局部变量全部放在栈内存区,定义在函数中的变量或者定义在语句块中的变量叫局部变量,局部变量的范围是用{}来界定的
特点是栈空间运行速度快,但是容量小,当方法执行完毕或者代码块执行完毕就自动释放空间
堆:容量大,运行速度慢,当引用关系消失后,由JVM的垃圾回收机制自动回收
数组的常用操作:
1.最大值
2.最小值
3.排序
4.查找
5.元素的反转
数组的排序:
1.选择排序:每一轮选择该轮的第一个数和其它所有数进行比较,如是满足交换位置条件,则进行两个数的交换,一直重复这样的过程就可以了
引用传参:传递的是引用数据类型在堆空间的地址,对传入的堆地址的所指代的数据会改变,而且将改变后的结果会保存下来
值传参:传递的实际参数的副本,对传入的实际参数的值没有影响,不会改变传入的实际参数的值
2.冒泡排序:每一轮相邻的两个数比较,满足我们要求进行换位,直到所有的数据都在合适的位置,进行arr.length-1轮之后得到效果。
数组的查找:
1.普通查找:如果查找的数组没有任何规律就用普通查找法,普通查找法就是遍历数组中的每一个数来和需要查找的数据进行比较,直到遇到相同的数。查找的次数就是这个数组的长度,普通查找法查找整速度慢。
2.二分查找:二分查找法又称折半查找法,针对一个有顺序的数组,首先找到数组中间的元素,如果要查找的数据比中间元素大,就不需要再往较大的那一半数据中去查找,如果要查找的数据比中间元素小,就不需要往较小的那一半数据中去查找,如果要查找的数据与中间元素相等,则查找成功,这样就加快了查找的速度。
二分查找法的优点:比较次数少,查找速度快
缺点:只能对有顺序的数组进行查找
概念:数组就是数据的集合,实质就是内存空间的连续表示,将连续的内存空间划分为若干个小空间
定义:1.数据类型 []数组变量=new 数据类型[整数];整数表示划分内存空间的个数
2.数据类型[]数组名={a,b,c……}
当分配一个连续的内存空间时,JVM会自动为每个空间提供一个唯一的编号----索引或者叫做下标、角标,由0开始分配
获取数组的长度:数组名.length
数组操作常见问题:
1.下标越界ArrayIndexOutofBoundsException
2.空指针异常NullPointerException
数组的内存分析:局部变量中的基本数据类型必须给初始值,而引用数据类型有默认的初始值
引用数据类型的默认值
int 0
double 0.0
float 0.0f
char ''
栈:局部变量全部放在栈内存区,定义在函数中的变量或者定义在语句块中的变量叫局部变量,局部变量的范围是用{}来界定的
特点是栈空间运行速度快,但是容量小,当方法执行完毕或者代码块执行完毕就自动释放空间
堆:容量大,运行速度慢,当引用关系消失后,由JVM的垃圾回收机制自动回收
数组的常用操作:
1.最大值
2.最小值
3.排序
4.查找
5.元素的反转
数组的排序:
1.选择排序:每一轮选择该轮的第一个数和其它所有数进行比较,如是满足交换位置条件,则进行两个数的交换,一直重复这样的过程就可以了
引用传参:传递的是引用数据类型在堆空间的地址,对传入的堆地址的所指代的数据会改变,而且将改变后的结果会保存下来
值传参:传递的实际参数的副本,对传入的实际参数的值没有影响,不会改变传入的实际参数的值
2.冒泡排序:每一轮相邻的两个数比较,满足我们要求进行换位,直到所有的数据都在合适的位置,进行arr.length-1轮之后得到效果。
数组的查找:
1.普通查找:如果查找的数组没有任何规律就用普通查找法,普通查找法就是遍历数组中的每一个数来和需要查找的数据进行比较,直到遇到相同的数。查找的次数就是这个数组的长度,普通查找法查找整速度慢。
2.二分查找:二分查找法又称折半查找法,针对一个有顺序的数组,首先找到数组中间的元素,如果要查找的数据比中间元素大,就不需要再往较大的那一半数据中去查找,如果要查找的数据比中间元素小,就不需要往较小的那一半数据中去查找,如果要查找的数据与中间元素相等,则查找成功,这样就加快了查找的速度。
二分查找法的优点:比较次数少,查找速度快
缺点:只能对有顺序的数组进行查找