上午:
数组:数组是储存多个变量或元素的容器
关键词 new:新的,创建,在大多数时间里引用类型的创建都离不开new,
引用类型在打印时结果是一个地址(例[I@b4d3586)其中[是数组,I是int类型,b4d3586是一串16进制的数)
数组的特点1这些数组中的变量的类型一致
2长度不可变,一旦给了数组的长度,那么他就永远这么长
3数组既可以储存引用类型,又可以储存基本类型
数组的格式:1数组类型[] 数组名(int[] a)
2 数组类型 数组名 [] (int a [])
数组的创建和初始化:
1动态初始化:初始化时 只指定数组的长度,由系统为数组分配初始值
格式:数据类型[] 数组名 = new 数据类型[数组长度]
例创建一个长度为5的int类型的数组a, int [] a= new int [5];
在数组中取值: 在系统中,建立一个内存,这个内存存储着一个长度为5的数组
则他的索引(角标,下标)就是01234
想要取值时,数组名称[索引],这就代表着在该索引下的数组内的那个值,注意这是一个值,想要体现需要接受
如果没有进行赋值,则每个索引下的他代表着他的类型的默认值,(int类型为0…)
赋值: 数组名[] = 常量/变量;
例int[] a = new int[3]; a[0]=1; 这就是给数组a中的索引为0的位置赋值为1
想要把每个索引都赋值就需要赋值,数组的长度次
java中的内存分配:
java在运行时需要在内存中的分配空间,为了提高效率进行了划分
其中分为五类(栈,堆,方法区,本地方法区,寄存器)
这里只说两类:栈是存储局部变量的;堆是存储new出来的东西 的
在所有的数组中,具备一种名为length的属性,其作用为得到数组的长度,
int a =b.length 则a代表b的数组长度;(格式:数组名.length)
数组的遍历取值:就是将数组中的每一个值都取出来
for (int i = 0; i < a.length; i++) { System.out.println(a[i]); } ---------------------------------------------------------------------------------- int[] c = new int[5]; int[] d = c; 这里是将c的地址赋值给d,这时d[0]这个值发生改变的话,c[0]的值也会发生改变 多个数组可以对于一个地址
静态初始化:
初始化时,指定数组中的每个元素的初始值,由系统决定长度
格式:数据类型[] 数组名=new 数据类型[]{元素1…元素n}
例int[] a=new int[]{1,2,3}
简便写法数据类型[] 数组名={…} int[] a={1,2,3};
两个在数组中最常见的异常:
1数组索引越界: ArrayIndexOutOf bounds Exception. 访问到的数组中不存在的索引时发生
2空指针异常: NullPointerException.数据引用没有指向实体,缺在操作实体的元素
引用任意类型的参数时 使用:object
在实际操作中,引用类或者引用包都是存在的(在静态类中,方法可以直接调用)
创建一个引用类:先创建一个工具包,再创建一个类,此类可以没有主方法,只要其方法可以被调用就行
创建方法:public static 有无返回值及类型 方法名(参数类型 参数名){方法体}
其调用的方法: 类名.方法名()