随堂笔记——day04

一、Random类

  • 作用:

用于产生一个随机数

  • 使用步骤

1.导包:

import  java.util.Random;  //导包的动作必须出现在类定义的上面

2.创建对象

Random  r  =  new  Random( );

3.获取随机数

int num = r.nextInt(取值范围); //获取数据的范围为:[ 0 , 取值范围),包括左边界,不包括右边界

  • 公式

r.nextInt( 最大数 - 最小数 + 1) + 最小数 ;

  • 代码示例
//1、导包
import java.util.Random;
public class Demo02Random {
    public static void main(String[] args) {
        //2、创建Random对象
        Random r = new Random();
        //3、获取3个1-10随机数,公式:r.nextInt( 最大数 - 最小数 + 1) + 最小数 ;
        int randomNum1 = r.nextInt(10)+1;
        System.out.println(randomNum1);

        int randomNum2 = r.nextInt(10)+1;
        System.out.println(randomNum2);

        int randomNum3 = r.nextInt(10)+1;
        System.out.println(randomNum3);
    }
}

运行结果:随机打印三个1-10的整数


二、数组

1、格式

格式一: 数据类型  [ ]  变量名

范例:           int      [ ]     arr

 

格式二: 数据类型   变量名 [ ]

范例:           int              arr [ ] 

定义一个int类型的数组,数组名是arr


2、一维数组

(1) 数组动态初始化

初始化时只指定数组长度,由系统为数组分配初始值

  • 格式

数据类型 [ ] 变量名  =  new 数据类型 [ 数组长度 ];

  • 范例

   int [ ]  arr   =  new  int [ 3 ] ; 

  • 等号左边:

   int : 数组的数据类型

   [ ] :代表这是一个数组

   arr:代表数组的名称

  • 等号右边:

   new:为数组开辟内存空间

   int:数组的数据类型

   [ ] :代表这是一个数组

3:代表数组的长度

  • 数组元素访问

索引:每一个存储到数组的元素,系统都会自动分配一个从0开始依次增长的编号,这个自动编号成为数组索引(index),可以通过数组的索引访问到数组中的元素。

访问数组元素格式:数组名 [ 索引(index) ]; 

  • 代码示例
//动态初始化一个数组
int[] arr = new int[3];
//访问数组中的每一个元素
int num0 = arr[0];
int num1 = arr[1];
int num2 = arr[2]; 

//输出每一个元素值
System.out.println("num0:" + num0); //0
System.out.println("num1:" + num1); //0
System.out.println("num2:" + num2); //0

运行结果:num0、num1、num2都为0,原因请看下一个知识点“java程序的内存分配”。


  • java程序的内存分配

栈区:存储局部变量,使用完之后立即回收

堆区:存储new出来的东西(实体,对象),每一个对象都有地址和默认值(见附表1),使用完毕之后,会在垃圾回收空闲的时候被回收

方法去:面向对象进阶讲

本地方法区:和系统相关

寄存器:给CPU使用

附表1:

对象类型默认值
byte、short、int、long0
float、double0.0
char空字符
booleanfalse
引用数据类型null

(2)数组静态初始化

初始化时指定每个数组元素的初始值,由系统决定数组长度

  • 格式:

数据类型 [ ]  变量名 = new 数据类型 [ ] {  数据1,数据2,数据3,...... };

范例:int [ ]   arr   =   new  int [ ]  { 1,2,3 };

  • 简化格式:

数据类型 [ ]  变量名 =  {  数据1,数据2,数据3,...... };

范例:int [ ]   arr   =   { 1,2,3 };


(3)数组操作常见的两个小问题

索引越界异常(java.lang.ArrayIndexOutOfBoundsException):访问了不存在的索引

//定义一个长度为3的字符串数组
String[] arr ={"1","2","3"};
//访问数组索引为3的元素,此时会出现数组越界异常(java.lang.ArrayIndexOutOfBoundsException)
System.out.println(arr[3]);

空指针异常(java.lang.NullPointerException):数组已经不再指向堆区中的数据了,还使用数组名去访问元素

//定义一个长度为3的字符串数组
String[] arr ={"1","2","3"};
//将数组地址置位null
arr = null;
//访问数组元素,此时该数组将不再指向堆中的内存,会报java.lang.NullPointerException
System.out.println(arr[0]);

(4)数组获取最值

  • 思路:

1.定义一个变量,用于保存最值

2.取数组中第一个数据作为最值的初始值

3.与数组中取剩余的数据逐个比较,每次比对将最大值保存到变量中

4.循环结束后打印变量的值

  • 代码示例:
//定义一个整数类型数组
int[] arr ={12,45,98,73,60};
//定义存储最值的变量
int max;
//取数组中第一个数据作为最值的初始值
max = arr[0];
//循环与数组中剩余的数据逐个比对,每次比对将最大值保存到变量中
for(int i = 1; i < arr.length; i++){
    if(arr[i] > max){
        max = arr[i];
    }
}

//打印最值
System.out.println("max:" + max);

运行结果:max:98

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值