Java数组
-
数组的概念:
(1)数组是用来存放数据的,
(2)数组用来将相同数据类型存储啊在存储单元里,数组的所有元素必须属于相同的数据类型。可以保存多条数据;
(3)数组是引用数据类型。 -
为什么使用数组:
数组是一个大的容器,它可以存放多个值。 -
如何定义数组:
数组类型【】数组名;
如果定义好数组以后,必须要给数组进行初始化。
数组是一个引用数据类型;
数组的初始化分为两种情况:
(1)动态初始化:
指定数组的长度,一旦长度指定,数组中只能存放多少数组;
动态初始化数组以后,数组的元素会自动赋值;
1 第一种:
数组类型【】 数组名 =new 数组类型【数组长度】;
2 第二种:
数组类型【】 数组名 ;
数组名 =new 数组类型【数组长度】;
创建好了数组,怎么给数组进行赋值:通过数组的下标,数组的下标从0开始。
(2)静态初始化:
不是指定数组长度,而是直接在初始化数组的同时,给数组赋值。
1第一种:
数组类型【】 数组名 =new 数组类型【】{数据1,…,数据n};
2 第二种:
数组类型【】 数组名 ;
数组名 =new 数组类型【】{数据1,…,数据n};
最简单的方式创建数组:
数组类型【】 数组名 ={数据1,…,数据n};
获取数组的长度: 数组名.length
数组的长度一旦定义不可改变。 -
数组中常见的几种异常:
(1)数组越界异常: ArrayIndexOutOfBoundsException;
(2)空指针异常:NullPointerException -
遍历数组只有两种方式:【循环遍历数组】
(1)for循环遍历数组:【0代表数组的第一个元素,i代表数组的下标,n代表数组的长度】
int array=new int[]{14,2,6,34,90,89,12};
system.out.println(“for循环遍历数组:”);
for(int i =0;i<数组名.length;i++)
{
system.out.println(array[i]);
}
(2)foreach(for循环增强版)循环遍历数组:
/*
for(定义变量结束数组的每一个元素值:要遍历的数组名)
*/
system.out.println(“foreach循环遍历数组:”);
for(int a:array)
{
system.out.println(a);
} -
数组的分类:
(1)基本数据类型的数组:
byte,short,long,int,float,double,char,boolean;
默认: 0, 0, 0, 0, 0.0, 0.0, 空格, false;
(2)引用数据类型的数组:
string默认值为null,接口,自己定义的类;
引用数据类型的默认值为null;
(3)Java中的内存是怎么进行分配的:
内存的申请和释放都是JVM进行管理的;
Java程序要运行,JVM会自动的向电脑申请一块内存,把这块内存分为5部分:
(1)栈(Stack):主要存放局部变量
(2)堆(Heap):凡是new出来的东西都在堆里边,堆当中的数据都有默认原则;
(3)方法区(Method Area):存放的是与.Class文件相关的信息;
(4)本地方法区(Native Method Area ):与操作系统有关
(5)寄存器(Register):与CPU有关 -
数组在计算机内部的工作流程:
(1)定义的数组相当于变量,他将在栈的内部开辟一块空间;
(2)new的数组在堆的内部开辟一块空间,并根据长度划分成几块,生成地址值,并自动标志下标值;
(3)把生成的地址值赋值给栈里边的变量(保存的堆里边的地址值)
(4)对num进行赋值,根据地址值找到对应的空间,再根据下标值把对应的值放在对应的空间中。 -
数组在类群中的体现
(1)堆:
凡是new出来的东西都在堆里边,堆当中的数据都有默认原则;
(2)栈:
主要存放局部变量; -
冒泡排序算法:
1 思想: 数组中的元素两两比较,从大到小用<或从小到大用>输出;
eg:10,20,30,40,50,60 从大到小输出
20,30,40,50,60,10 第一趟 5次
30,40,50,60,20,10 第二趟 4次
40,50,60,30,20,10 第三趟 3次
50,60,40,30,20,10 第四趟 2次
60,50,40,30,20,10 第五趟 1次
总结:(1)N个数(数组的长度)比较了N-1趟;
(2)次数=N-趟数=N-(N-1)=2N+1
2 升序口诀:
n个数据来排队,两两比较小靠前;
外层循环n-1,内层循环n-1-i。
3 降序口诀:
n个数据来排队,两两比较大靠前;
外层循环n-1,内层循环n-1-i。 -
选择排序算法(了解)
互换索引位置
eg: int num={25,4,56,122,2};
从小到到输出
第一轮是确定数组中所有元素的最小值;