【Random随机数】
导包
import.java.util.Random;
创建对象
Random r= new Random();
获取随机数
int number=r.nextInt(10);
获取[5-10]
int i=r.nextInt(6) + 5;
产生随机数的长度 从几开始
【数组】
存储同一数据类型的多个元素的容器
定义格式:
数据类型[] 数组名;
定义一个-----数据类型的数组,数组名是----
数据类型 数组名[];
定义了一个-----类型的变量,变量名是-----数组
数组的初始化:(开辟内存空间,并为每个元素赋值)
动态初始化
给出长度,系统给出初始化值
数据类型[] 数组名 = new 数据类型[数组长度];
int[] arr = new int[3];
数组元素的获取
0---arr.lenght-1 是数组元素的索引
最大索引==数组长度-1;
访问格式:
数组名[索引]
栈(存储局部变量)
局部变量就是定义在方法里面的变量--使用完毕,立即回收
堆(存储new出来的东西---对象)
每个对象都有地址值
每一个对象的数据都有默认值
整数类型 0
浮点型 0.0
char ‘\u0000’
boolean false
引用类型 null
使用完毕后,会在垃圾回收器空闲的时候被回收
给数组赋值:
arr[1]=100;
arr[2]=12;
静态初始化
给出初始化值,系统决定长度
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,...};
int[] arr = new int[]{1,2,3,...};
【常用格式】
(只能在声明数组的时候这么写)
数据类型[] 数组名={元素1,元素2,元素3,...};
int[] arr = {1,2,3,...};
也可以重新创建对象的方法重新赋值
arr = new int[]{6,7,8,9};
【数组的遍历】
常见问题
数组索引越界异常:
Array Index out of Bounds Exception
访问了不存在的索引
空指针异常:
Null Pointer Exception
null可以赋值给引用类型(类、接口、数组)
数组已经不再指向堆内存的数据了,就不能使用数组名访问元素
arr = null; 说明数组地址已经改变
【数组的遍历】
for循环遍历数组:
for(int i=0;x<arr.length;i++){
System.out.println(arr[i]);
}
数组获取最值(最大值、最小值)
先拿一个元素,
遍历数组,将所有的元素与这个元素比较,留下较大值
1.定义一个数组
int[] arr={11,22,33,4,5,6,99};
2.定义一个参照物
int max=arr[0]
3.遍历数组,获取参照物以外的元素,比较大小
for(int i=1;arr.length;i++){
if(max<arr[i]){
max=arr[i];
}
System.out.println(max);
}
【二维数组】
元素为数组的数组
格式:
数据类型[][] 数组名;
初始化:
动态 数据类型[][] 数组名=new 数据类型[m][n];
m表示数组的个数 n表示元素的个数
静态 数据类型[][] 数组名= new 数组类型[][]{{},{},...};
数据类型[][] 数组名={{},{},{},...};
【注意】
二维数组名配合索引可以获得每一个一维数组----------arr[]
每一个一维数组配合索引可以获取数组中的元素--------arr[][]
【遍历二维数组】
//定义二维数组
//获取二维数组的元素
syso arr[0][0]
for(int){}
······arr.length 二维数组的长度
······arr[].length 一维数组的长度
【方法】
代码块
格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数2,...){
方法体;
return 返回值;
}
参数名-----用于接收调用方法是传入的数据的变量
两个明确:
【A】返回值类型 明确功能结果的数据类型
【B】参数列表 明确有何种数据类型、几个参数
【有明确返回值的方法的调用】
【1】单独调用,无意义 sum(10,20);
【2】输出调用,不能操作 System.out.println(sum(10,20));
【3】赋值调用,可以操作 int result=sum(10,20);
<返回值给调用者看的,方便调用者明确接收数据的数据类型>
<方法声明上的变量叫形参,也是局部变量,被调用----才赋值>
<可以有多个return,但是只能返回一个返回值(return)>
【void----无返回值类型------用于没有参数列表的方法】
void修饰的方法的调用--【只能单独调用】
【方法重载】
再同一个类中,出现了方法名相同的情况
特点:
<1>方法名相同
<2>参数列表不同 (参数个数不同 || 参数的数据类型不同)
<3>与返回值无关
【注意】
在调用方法的时候,虚拟机会根据参数列表区分同名方法!
【方法形式参数传递问题】
方法参数为基本数据类型:
形式参数的改变不会影响实际参数
方法参数为引用数据类型:
形式参数的改变直接影响实际参数
【形式参数的值改变了,所以实际参数改变了】
|
|