System/Math/BigInteger

本文共--字 阅读约--分钟 | 浏览: -- Last Updated: 2022-06-25

System

System类代表系统,系统级的很多属性和控制方法都放置在该类的内部,该类位于java.lang包

该类是private的,无法实例化,其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。

常用方法:

  • currentTimeMillis():返回当前的计算机时间的时间戳
  • exit(int status):退出程序,参数为0代表正常退出,非零代表异常退出。
  • gc():请求系统进行垃圾回收,至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况
  • getProperty(String key):获取系统中对应属性的值
    • java.version: java运行时环境版本
    • java.home: java安装目录
    • os.name: 操作系统的名称
    • os.version:操作系统的版本
    • user.name:用户的账户名称
    • user.home:用户的主目录
    • user.dir:用户的当前工作目录

Math

java.lang.Math提供了一系列静态方法用于科学计算,其方法的参数和返回值类型一般为double类型。

  • abs: 绝对值
  • acos/asin/atan/cos/sin/tan:三角函数
  • pow(double a, double b):a的b次幂
  • log:自然对数
  • exp:e为底指数
  • max(double a, double b):最大值
  • min(double a, double b):最小值
  • random():返回0-1的随机数
  • long round(double a):double类型a转换为long型,四舍五入
  • toDegrees(double angrad): 弧度 -> 角度
  • toRadians(double angdeg): 角度 -> 弧度

BigInteger

Interger类作为int的包装类,能存储的最大整型数值为2^31 - 1,Long类也是有限的,最大为2^63 - 1,如果要表示再大的正数,不管是基本数据类型还是包装类都无能为力。

java.math包的BigInteger可以表示不可变的任意精度的正数,提供共所有Java的基本正数操作符的对应物,并提供java.lang.Math的所有相关方法

构造器是根据字符串创建BigInteger对象,BigInteger(String val)

BigDecimal

一般的Float类和Double类可以用来做科学计算或工程计算,但是在商业计算中,要求数字的精度比较高,故需用使用java.math.BigDecimal类,支持不可变的、任意精度的有符号十进制定点数。

构造器:

  • pubic BigDecimal(double val)
  • pubic BigDecimal(String val)

示例:

import org.junit.Test;

import java.math.BigDecimal;
import java.math.BigInteger;

public class SystemTest {

  @Test
  public void test() {
    BigInteger bi = new BigInteger("124125315615646464651564687432132154645641313");
    BigDecimal bd = new BigDecimal("12345.2212");
    BigDecimal bd2 = new BigDecimal("11.27879797946513131346465");
    System.out.println(bi);
    // 加减乘除
    System.out.println(bd.add(bd2));
    System.out.println(bd.subtract(bd2));
    System.out.println(bd.multiply(bd2));
    System.out.println(bd.divide(bd2, 5)); // 第二个参数是,roundingMode 结果的取值方式,有5种
  }
}