Math 类
常用数学函数
Math 类 是 CoddyKit 上的免费 Java Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 4 节课。
Math 类
java.lang.Math 是一个内置的静态数学方法类。它位于 java.lang 中,因此不需要导入。您可以在该类上调用方法:Math.sqrt(2)。
幂和根
Math.pow(base, exp) 会将一个数提升到指定的幂,Math.sqrt(x) 会计算平方根。二者都会返回 double。
public class Main {
public static void main(String[] args) {
System.out.println(Math.pow(2, 10));
System.out.println(Math.sqrt(144));
}
}绝对值
Math.abs 会返回一个数的大小并去掉符号。它针对 int、long、float 和 double 都提供了重载。
public class Main {
public static void main(String[] args) {
System.out.println(Math.abs(-42));
System.out.println(Math.abs(-3.14));
}
}最小值和最大值
Math.min 和 Math.max 会返回两个值中较小或较大的那个。
public class Main {
public static void main(String[] args) {
System.out.println(Math.max(10, 25));
System.out.println(Math.min(10, 25));
}
}PI 和 E 常量
Math 提供两个著名的常量:Math.PI 和 Math.E。它们是 public static final double 字段。
public class Main {
public static void main(String[] args) {
double radius = 3;
double area = Math.PI * radius * radius;
System.out.println("Area: " + area);
}
}三角函数
像 Math.sin、Math.cos 和 Math.tan 这样的三角函数使用的是弧度,而不是角度。请使用 Math.toRadians 进行转换。
public class Main {
public static void main(String[] args) {
double degrees = 90;
double radians = Math.toRadians(degrees);
System.out.println(Math.sin(radians));
}
}对数和指数
Math.log 是自然对数(以 e 为底),Math.log10 以 10 为底,而 Math.exp 会计算 e 的指定次幂。
public class Main {
public static void main(String[] args) {
System.out.println(Math.log10(1000));
System.out.println(Math.exp(1));
}
}使用 hypot 计算距离
Math.hypot(x, y) 会计算 x 的平方加 y 的平方的平方根,同时避免中间结果溢出,非常适合计算二维距离。
public class Main {
public static void main(String[] args) {
double dist = Math.hypot(3, 4);
System.out.println(dist);
}
}整数溢出辅助方法
如果结果溢出,Math.addExact 和 Math.multiplyExact 等方法会抛出 ArithmeticException,而不是悄悄回绕。
public class Main {
public static void main(String[] args) {
try {
int result = Math.addExact(Integer.MAX_VALUE, 1);
System.out.println(result);
} catch (ArithmeticException e) {
System.out.println("Overflow detected: " + e.getMessage());
}
}
}返回类型是 double
大多数 Math 方法都会返回 double。如果需要 int,就必须显式转换:(int) Math.sqrt(16)。请注意,转换会向零截断。
public class Main {
public static void main(String[] args) {
int side = (int) Math.sqrt(16);
System.out.println(side);
}
}一个小型计算
您可以组合多个 Math 方法来计算结果,例如通过平方和平方根计算斜边长度。
public class Main {
public static void main(String[] args) {
double a = 5, b = 12;
double c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));
System.out.println("Hypotenuse: " + c);
}
}快速检查
请检验您对 Math 类的理解。
回顾
您已经探索了 Math 类。
- 它是静态的,并且位于
java.lang中,因此不需要导入。 pow、sqrt、abs、min和max可以处理常见运算。- 可以使用
PI和E常量。 - 三角函数使用弧度;大多数方法返回
double。
常见问题解答
「Math 类」课时是免费的吗?
是的 — 「Math 类」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 4 节课。
「Math 类」这节课中我会学到什么?
常用数学函数 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Java Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「Math 类」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Java Academy 课中编写并运行代码吗?
能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。