java数组
数组:一个容器。存放java中的数据。数据是同一种数据类型的数据
概念:只能存放同一种数据类型数据的容器。(数据结构)
数组中存放的数据类型:既可以是基本数据类型也可以是引用数据类型。
数组属于引用数据类型。
存放应用数据类型时,数组默认为空。
数组一旦被初始化则不允许更改。
数组的定义方式:
1.静态定义:
结构:
数据类型[]数组名={元素1,元素2.....}
数据类型 数组名[];
注意:静态初始化数组需要将定义和初始化一起完成。
2.动态定义
结构:
数据类型[] 数组名=new 数据类型[指定个数]
取值:
数据类型 变量名=数组名[元素下标]
赋值(修改)
数组名[]=值。
数组
1.栈区:开辟内存中一块空间,用来存放java中的变量。如果变量出了作用域那么变量立马就会从内存中清除
如果变量存放的是基本数据类型,那么变量的值也存放在栈区中。
2.堆区:通过new创建的对象会开辟一块内存空间来存放对象数据。如果对象没有变量引用,java虚拟机会在某一个时刻来清理。
在java中看到 new 关键字,定义出来的就是引用类型的数据,通过new创建出来的数据都会在堆区中开辟一块空间,存放引用类型数据。
冒泡排序:将数组中相邻的两个数依次比较
foreach循环
结构:for(变量:数组名){循环体}
例 :for(int a:arr){
}
选择排序(直接排序):将数组中每一个元素和数组中其他的元素做比较。
length:长度
null :空
当一个对象没有被人引用,那么这个对象就会变成一个垃圾对象,java虚拟机会在某个时刻回收垃圾对象。 java中垃圾回收机制。
二分法:只能查找有序数组
需要定义三个变量分别表示起始,结束,中间元素。需要比较的数和中间元素作比较,如果大于中间元素,将起始位置移动到中间元素的后一位。反之小的话将其移到中间元素前一位。直到中间元素等于查找元素则表示找到了。当结束位置小于开始位置时表示没有找到
多维数组:
int[]a={};一维数组
int[][]a={};二维数组
int[][]...a={};多维数组
想要一维数组中的元素个数不一致,
int[]数组名=new int[3][];
数组名[0]------>获取二维数组中的第一个一维数组。
数组名[0]=new int[10];
数组的特点:
1.用来存放同一种数据类型的容器。
2.数组的每一个元素都有一个下标索引。索引值是从0开始,最大为数组的元素的个数-1.
3.元素的个数一旦固定就无法再修改。
4.数组中的元素在内存中是一块连续的内存地址。