java第十三课
一、本节课所学内容
Math 数学工具类
Math 属于静态工具类,全部方法均为静态方法,无需创建对象,直接Math.方法名()调用。
基础运算:abs () 取绝对值、round () 四舍五入、ceil () 向上取整、floor () 向下取整;
幂与开方:pow () 幂运算、sqrt () 平方根;
最值与随机:max ()、min () 获取两数最大最小值,random () 生成 [0,1) 之间的随机小数。
Random 随机数类
和 Math.random () 相比,Random 可以灵活生成指定区间整数、小数。
创建 Random 对象,依靠 nextInt (n) 生成 [0,n) 的整数;
拓展写法:nextInt (最大值 - 最小值 + 1)+ 最小值,自定义左右闭合随机区间;
可生成 long、float、boolean 等多种随机类型。
System 系统类
同样全为静态方法,常用核心方法:
System.out/ System.in:控制台输出、输入流;
System.currentTimeMillis ():获取当前系统毫秒时间戳,常用来统计代码运行耗时;
System.exit (状态码):终止 JVM 程序,exit (0) 正常结束,非 0 代表异常终止;
arraycopy ():数组快速拷贝,效率高于手动循环赋值。
二、学习遇到的问题
容易混淆 ceil 向上取整、floor 向下取整、round 四舍五入三者区别,负数场景计算经常出错;
自定义随机区间时,总是记错区间换算公式,经常出现边界取不到的问题;
不清楚时间戳的使用场景,一开始不知道如何用 currentTimeMillis () 测试代码运行速度;
忽略 System.exit () 的作用,随意使用会直接强制结束程序,打断后续代码执行。
三、和 C/C++ 简单对比
C/C++ 数学函数分散在<math.h>头文件中,Java 统一整合在 Math 类中,调用结构更规整;
C 语言随机数 rand () 需要手动设置随机种子,否则每次运行随机序列完全一致,Java 的 Random、Math.random () 自动处理种子,使用更便捷;
C++ 没有统一的 System 系统工具类,获取时间、程序退出、数组拷贝都需要调用不同库函数,Java 封装度更高,上手更简单。

浙公网安备 33010602011771号