Java基础Day04
- Random
- 数组
目录:
1.Random
Random用于产生随机数
1.1使用步骤:
- 1.导包
- import java.util.Random;
- 2.创建对象
- Random random=new Random();
- 3.获取随机数
- int num=random.nextInt(10);//参数10表示范围0-9
- 产生的数据在0到100之间,包括0,不包括100
代码示例:
RandomDemo.java :
package com.itheima;
import java.util.Random;
import java.util.Scanner;
public class RandomDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random r = new Random();
int number = r.nextInt(100);//产生的数据在0到100之间,包括0,不包括100
System.out.println("请猜一猜这个数的大小:");
int gass = sc.nextInt();
int count = 0;
while (true) { // 快捷键alt+shift+z,显示可选择循环
count++;
if (gass == number) {
if(count<=3){
System.out.println("猜中了!");
System.out.println("祖坟冒青烟喽~");
}else{
System.out.println("猜中了!");
System.out.println("菜的抠脚。");
}
break;// 跳出
} else if (gass > number) {
System.out.println("大了,继续吧");
gass = sc.nextInt();
} else if (gass < number) {
System.out.println("小了,继续吧");
gass = sc.nextInt();
}
}
}
}
2.数组
2.1概念:
数组是存储同一种数据类型多个元素的容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。
2.2数组的定义格式
格式1:数据类型[] 数组名;(推荐使用)???
格式2:数据类型 数组名[];注意:这两种定义做完了,数组中是没有元素值的。
2.3数组的初始化
数组初始化概述
Java中的数组必须先初始化,然后才能使用。
所谓初始化,就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
- 初始化方式
-
动态初始化
动态初始化时只指定数组长度,由系统为数组分配初始值
格式:数据类型[] 数组名 = new 数据类型[数组长度];
数组长度其实就是数组中元素的个数。
举例:
int[] arr = new int[3];
解释:定义了一个int类型的数组,这个数组中可以存放3个int类型的值。 -
静态初始化
静态初始化时指定每个数组元素的初始值,由系统决定数组长度
举例:
int[] arr = new int[]{1,2,3};
简化后:
int[] arr = {1,2,3};
2.4数组的内存分配
2.41JVM内存划分
Java 程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
五种区域名称 | 作用 |
---|---|
栈 | 存储局部变量 |
堆 | 存储new出来的东西 |
方法区 | 面向对象进阶讲 |
本地方法区 | 和系统相关 |
寄存器 | 给CPU使用 |
图片
2.5数组的使用
2.6一维数组练习
2.7二维数组
2.71 二维数组概述
其实二维数组其实就是一个元素为一维数组的数组。
2.7.2二维数组格式
定义格式
数据类型[][] 数组名;
数据类型 数组名[][]; 不推荐
数据类型[] 数组名[]; 不推荐
初始化方式
数据类型[][] 变量名 = new 数据类型[m][n];
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
简化版格式:数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
常见报错
ArrayIndexOutOfBoundsException
数组索引越界异常
NullPointerException
空 指针异常
产生原因:数组已经不再指向堆内存数据
Infinity:除以0时会出现