Random(随机数)
作用产生一个随机数
1.导包
import java.util.Random;
2.创建对象
Random r=new Random();
3.获取随机数
int number=r.nextInt(10);
产生的数据在0-10之间,包括0,不包括10;
练习:如何获取1-100之间的随机数
Random r=new Random();
int num=r.nextInt(100)+1;
System.out.println(num);
练习2:猜数字小游戏案例,系统产生一个1-100之间的随机数,猜出这个数据是多少
Scanner sc=new Scanner(System.in);
Random r= new Random();
System.out.println("请输入你猜的数据");
int guess=sc.nextInt();
int num=r.nextInt(100)+1;
if(guess>num) {
System.out.println("你输入的数据较大");
}
else if(guess<num) {
System.out.println("你输入的数据较小");
}else {
System.out.println("你输入的数据为"+guess+"与随机生成的数据"+num+"相等");
}
数组
数组是存储多个元素的容器
多个变量的类型要一致
定义格式1.数据类型[] 数组名;(推荐)
2. 数据类型 数组名 [];
数组初始化:
为数组开辟内存空间,并未数组中的每个元素赋予初值
a.动态初始化 只给出长度,由系统给出初始化值
数据类型 [] 数组名= new 数据类型 [数组长度];
b.静 态初始化 给出初始化值,由系统决定长度
数据类型[] 数组名 =new 数据类型[]{元素1,元素2…};
简化写法: int [] arr={1,3,2};
通过数组名和编号的配合使用我们就可以获取指定编号的元素值
编号方法:索引
Java内存分配
栈 存储局部变量<使用完毕立即回收>
堆 存储new出来的东西(实体,对象)<每个对象都有地址值
每一个对象的数据都有默认值 byte short int long 0
float double 0.0
char ‘\u0000’
boolean false
使用完毕后,会在垃圾回收器空闲的时候回收>
方法区
本地方法区(和系统相关)
寄存器(给cpu使用)
练习1:定义一个数组,输出数组名及元素。然后给数组中的元素赋值,再次输出数组名及元素
int []arr=new int [3];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println("------------------------------------");
arr[0]=100;
arr[1]=1000;
arr[2]=111;
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
练习2:定义两个数组,分别输出数组名及元素,然后分别给数组中的元素赋值,分别再次输出数组名及元素
int []arr=new int[3];
int []arr1=new int[4];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++");
System.out.println(arr1);
System.out.println(arr1[0]);
System.out.println(arr1[1]);
System.out.println(arr1[2]);
System.out.println(arr1[3]);
arr[1]=100;
arr[0]=66;
arr1[0]=99;
arr1[2]=88;
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++");
System.out.println(arr1);
System.out.println(arr1[0]);
System.out.println(arr1[1]);
System.out.println(arr1[2]);
System.out.println(arr1[3]);
练习3:定义两个数组,先定义第一个数组,赋值,在输出,然后定义两个数组的时候把第一个数组的地址赋值给第二个数组。然后给第二个数组赋值,再次输出两个数组的名及元素
int [] arr2 =arr
int[]arr=new int[3];
arr[0]=10;
arr[2]=11;
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println("-----------------------------------------------");
int []arr1=arr;
arr1[0]=1111;
arr1[1]=2222;
arr1[2]=8888;
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr1);
System.out.println(arr1[0]);
System.out.println(arr1[1]);
System.out.println(arr1[2]);
数组操作过程中的常见小问题
1.数组索引越界
ArrayIndexOutOfBoundsException
访问到了数组中不存在的索引时发生
2.空指针异常
NullPointerException
数组引用没有指向对象,却在操作对象中的元素时
练习1:数组遍历(依次输出数组中的每一个元素)
获取数值长度:数值名.length
练习2:数组获取最值(获取数组中的最大值最小值)
二维数组一维数组的数组
定义格式
1.数据类型[][] 数组名;(推荐)
2.数据类型 数组名[] [];
3.数据类型[] 数组名[];
初始化
动态初始化
数据类型[][] 数组名=new 数据类型[m][n];
m表示的是二位数组中一维数组的个数
n表示的是一维数组中的元素个数
静态初始化
数据类型[][] 数组名 =new 数据类型[][]{{元素…},{元素…},{}…};
练习:二维数组的遍历
int[][]arr=new int[][] {{1,2,3},{4,5,6},{7,8,9}};
for(int i=0;i<3;i++) {
for(int j=0;j<3;j++) {
System.out.print(arr[i][j]+" ");
}
}
带ln输出换行
不带ln不换行