Java Number & Math 类
一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。然而在实际开发中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类。
Java 中的 Number 类是一个抽象类,它是所有表示数值类型的基类。
Number 类的子类包括 Integer、Double、Long、Byte 等,它们分别表示不同的数值类型。
包装类 | 基本数据类型 |
---|---|
Boolean | boolean |
Byte | byte |
Short | short |
Integer | int |
Long | long |
Character | char |
Float | float |
Double | double |
并且提供了将这些数值类型转换为其他数据类型的方法,如 intValue()、doubleValue()、longValue() 等。
这种由编译器特别支持的包装称为**装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类**。相似的,编译器也可以把一个对象**拆箱为内置类型**。
Java Math 类
Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。Math 类是一个工具类,提供了各种数学运算的静态方法。Math 类中的方法可以用来执行常见的数学计算,如绝对值(abs)、幂运算(pow)、取整(ceil、floor、round)、三角函数(sin、cos、tan 等)以及对数、指数、最大值(max)、最小值(min)等。Math 类还提供了一些常见的数学常量,如π(圆周率)和 e(自然对数的底数)。
Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。
以下是 Number 类和 Math 类的一些常用方法示例:
Number 类方法示例:
Integer num = new Integer(10);
int intValue = num.intValue(); // 将 Integer 转换为 int 类型
double doubleValue = num.doubleValue(); // 将 Integer 转换为 double 类型
Double num2 = new Double(3.14);
int intValue2 = num2.intValue(); // 将 Double 转换为 int 类型
Math 类方法示例:
double absValue = Math.abs(-5.6); // 求绝对值
double powValue = Math.pow(2, 3); // 求幂运算,2 的 3 次方
double ceilValue = Math.ceil(4.2); // 向上取整
double floorValue = Math.floor(4.8); // 向下取整
double roundValue = Math.round(5.6); // 四舍五入取整,先+0.5再向下取整
double sinValue = Math.sin(Math.PI / 2); // 正弦函数,参数为弧度制
double cosValue = Math.cos(Math.PI); // 余弦函数,参数为弧度制
double tanValue = Math.tan(Math.PI / 4); // 正切函数,参数为弧度制
double maxValue = Math.max(5, 8); // 求最大值
double minValue = Math.min(3, 7); // 求最小值
Math 的 floor,round 和 ceil 方法实例比较
参数 | Math.floor | Math.round | Math.ceil |
---|---|---|---|
1.4 | 1 | 1 | 2 |
1.5 | 1 | 2 | 2 |
1.6 | 1 | 2 | 2 |
-1.4 | -2 | -1 | -1 |
-1.5 | -2 | -1 | -1 |
-1.6 | -2 | -2 | -1 |
结尾语:记录于2023年7月20号22时01分,以上仅为个人在Java Number&Math类的学习过程中遇到的问题,还有记录的个人想法,有错误欢迎指出,感谢!