Day4
Random(随机数):
作用:产生一个随机数。
使用步骤:
A:导包
import java.util.Random;
B:创建对象
Random r=new Random();
C:获取随机数
int number = r.nextInt(10);
获取范围:[0,10)包括0,不包括10
数组:
存储同一种数据类型的多个元素的容器;
定义格式:
A:数组类型[] 数组名;
B:数组类型 数组名[];
一般使用A种:
int [] arr;
数组初始化:
A:所谓的初始化, 就是为数组开辟内存空间,并未素组中的每个元素赋予初始 值
A:我们有两种初始化数组的方式;
A:动态初始化 只给出长度, 由系统给出初始值
B:静态初始化 给出初始化值,由系统决定长度、
动态初始化:
数组类型[] 数组名= new 数组类型[数组长度];
java中的内存分配:
栈:(储存的局部变量);
堆:(存储的是new出来的东西);
方法区:
本地方法:(和系统相关);
寄存器(给CPU使用);
栈:储存的的局部变量;局部变量就是定义方法中的变量;使用完毕立即回收;
堆:存储的是new出来的东西, 实体,对象
A:每一个对象都有地址值;
B:每一个对象的数据都有默认值;
C:使用完毕后,回来垃圾回收器空闲的时候被回收。
数组使用常见问题:
A:数组索引越界异常。
产生原因:我们访问了不存在的索引;
B:空指针异常
产生原因:数组已经不再指向堆内的数据,你还在访问数组
二维数组:就是元素为一维数组的数组;
定义格式:
A:数据类型[][] 数组名;(推荐的方式)
B: 数组类型 数组名 [] [] ;
C: 数组类型[] 数组名[];
初始化:
A:动态初始化
数据类型[][]数组名 = new 数据类型[m][n];
m表示二维数组中的一维数组的个数;
N表示一维数组中的元素个数;
B:静态初始化
数据类型[][] 数组名 = new 数据类型[][]{{元素},{元素}, {元素},......}
简化格式:
数据类型[][] 数组名 = {{元素},{元素},{元素},......}
二维数组.length获取的其实就是二维数组中有及格一维数组
Day5
方法: 其实就是完成特定功能的代码块
定义格式:
修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2){
方法体;
return 返回值;
}
格式解释:
A 修饰符
B:返回值类型 用于限定返回值的数据类型。
C:方法名 为了方便我们调用方法的名字。
D:参数类型 用于限定调用时传入的数据类型。
E:参数名 用于调用方法是传入的数据变量。
F: 方法体 完成功能的代码。
G:return 结束方法 并且把返回值带回给调用者。
写一个方法的两个明确:
A 返回值类型 明确功能结束的数据类型。
B 参数列表 明确有几个参数,以及参数的数据类型。
方法的调用:(有明确返回值的方法调用)
A:单独调用 没有意义。
B:输出调用 有意义 但无法对结果进行进一步操作。
C:赋值调用 有意义
两个明确:
返回值类型:void
参数列表:没有参数
如果一个方法没有明确的返回值类型, 也不能把返回值的类型空出来, 需要用 void。
方法重载:
在同一个类中 出现了方法同名的情况。
特点:
方法名相同, 参数列表不同。与返回值无关。
参数列表不同:
A:参数的个数不同。
B:参数对应的数据类型不同。
不能出现方法名相同并且参数列表也相同的情况。
注意:
在调用方法的时候 JAVA虚拟机会通过参数列表的不同来区分同名的方法。
方法的参数如果是基本数据类型:形式参数的改变不影响实际参数。
形式参数: 用于接受实际参数的变量。
实际参数:实际参与运算的变量。
如果参数是引用数据类型:形式参数的改变直接影响实际参数。
|
|