Java 的 Math 类是无需实例化的数学工具类,位于 java.lang 包,所有方法均为 static 且多为 native 实现;提供数值处理、取整舍入、幂根运算、随机数及常量等功能,使用时需注意弧度制、类型转换与非法输入处理。

Java 的 Math 类 是一个专用于数学计算的工具类,它不提供实例,所有方法都通过类名直接调用,开箱即用。
核心定位:无需创建对象的数学计算器
它位于 java.lang 包下,所以不用 import 就能用;所有方法都是 static,比如 Math.abs(-5)、Math.sqrt(16);内部大量使用 native 实现,性能高、结果可靠。它不是用来“建模”或“封装逻辑”的,而是帮你快速完成确定性数学运算。
最常用的方法类型与典型用途
数值处理类
-
Math.abs(x):取绝对值,支持 int/long/float/double,适合差值计算、距离判断 -
Math.max(a, b)和Math.min(a, b):比大小,常用于边界控制、初始化赋值 -
Math.signum(x)(float/double):返回 -1.0 / 0.0 / 1.0,适合方向判定,如物理模拟中的力向量符号
取整与舍入类
立即学习“Java免费学习笔记(深入)”;
-
Math.floor(x):向下取整(≤x 的最大整数),例如分页计算总页数:(int) Math.ceil(total / (double) size) -
Math.ceil(x):向上取整(≥x 的最小整数) -
Math.round(x):四舍五入到最近的 long 或 int,注意负数规则(如Math.round(-1.5)是 -1)
幂与根类
-
Math.pow(base, exp):支持小数指数,但底数为负时需确保指数为整数,否则返回 NaN -
Math.sqrt(x):仅接受 ≥0 参数,负数返回 NaN;适合勾股定理、标准差等场景 -
Math.cbrt(x):支持负数,如Math.cbrt(-27)返回 -3.0
随机与常量类
-
Math.random():返回 [0.0, 1.0) 的 double,要生成 [a, b) 区间可用a + Math.random() * (b - a) -
Math.PI和Math.E:直接使用,精度足够日常工程计算(π ≈ 3.141592653589793)
使用时要注意的几个细节
• 所有三角函数(sin/cos/tan)只认弧度,角度需先转:Math.toRadians(30)
• 大部分返回 double,若需 int/long,记得显式强制转换,如 (int) Math.sqrt(25)
• sqrt、log、asin 等对非法输入(负数、超域)会返回 NaN 或 Infinity,建议加简单校验
• 没有除零异常,但像 Math.log(0) 返回 -Infinity,Math.sqrt(-1) 返回 NaN










