1.Random(用于产生随机数)
使用步骤(格式):
导包
import java.util.Random;
创建对象
Random r = new Random();
获取随机数
int number = r.nextInt(m);
注意:获取数据的范围[0,m)...r.nextInt(m)+n,从开始,区间长度为m.
2.数组(存储同一种数据类型的多个元素的容器)
定义格式:
A:数据类型[] 数组名;
B:数据类型 数组名[];......(不推荐使用)
数组的初始化:
A:所谓的初始化,就是为数组开辟空间,并为数组中的每个元素赋初始值
B:两种初始化方法
动态初始化 只给出长度,有系统给出初始值
静态初始化 给出初始值,由系统计算长度
1)动态初始化
数据类型[] 数组名 = new 数据类型[数组长度];
例: int[] arr = new int[3];
左边:
int 说明数组中的元素类型是int类型
[] 说明这是一个数组
arr 这是数组的名称
右边
new 为数组申请内存分配,开辟空间
int 说明数组中的元素类型是int类型
[] 说明这是一个数组
3 数组的长度,就是数组中元素的个数
①java中的内存分配
栈(存储的是局部变量,就是方法中定义的变量)
堆(存储的是new出来的东西,实体,对象...
1.每一个对象都有地址值
2.每一个对象的数据都有默认值
byte,short,int,long---0;
float,double---0.0;
char---'\u0000';
boolean---false;
引用数据类型-----null;
方法区(面向对象进阶讲)
本地方法区(和系统相关)
寄存器(给CPU使用)
②两个数组指向同一个地址时,第二个数组的值会覆盖第一个数组的值
2)静态初始化
数据类型[] 数组名 = new 数据类型{元素1,元素2...};
例: int[] arr = new int{1,2,3...};
简写为int[] arr = {1,2,3...};
3)两个常见小问题
数组索引越界
产生原因:访问了不存在的索引
空指针异常
产生原因:数组已经不再指向堆内存的数据了,你还用索引去访问数组中的元素
4)数组获取最值的思路
①先拿数组中的一个元素做参照物
②遍历数组,让后面的所有元素依次和参照物进行比较,如果元素比参照物大,就留下
③最终留下的就是最大的元素
//求最小值思路一样
5)二维数组(元素为一维数组的数组)
定义格式
数据类型[][] 数组名;
数据类型 数组名[][];
数据类型[] 数组名[]; //后面两种不推荐
初始化
动态初始化
数据类型[][] 数组名 = new 数据类型[m][n];
m表示二维数组中一维数组的个数
n表示一维数组的元素个数 //可以不写,后面定义
静态初始化
数据类型[][] 数组名 = new 数据类型[][]{{元素...},{元素...},{元素...}...};
简化格式
数据类型[][] 数组名 = {{元素...},{元素...},{元素...}...};
A.二维数组配合索引可以获取到每一个一维数组
B.每一个一维数组配合索引可以获取到这个数组中的元素
二维数组arr
一维数组arr[]
数组中的元素arr[][]
|
|