常用API(一)
一、Math类
- 所在包为java.lang包,因此在使用的时候不需要进行导包;
- final修饰了,因此该类是不能被继承的;
- 包含执行基本数字运算的方法,我们可以使用Math类完成基本的数学运算。
public static int abs(int a)
// 返回参数的绝对值
public static double ceil(double a)
// 返回大于或等于参数的最小整数
public static double floor(double a)
// 返回小于或等于参数的最大整数
public static int round(float a)
// 按照四舍五入返回最接近参数的int类型的值
public static int max(int a,int b)
// 获取两个int值中的较大值
public static int min(int a,int b)
// 获取两个int值中的较小值
public static double pow (double a,double b)
// 计算a的b次幂的值
public static double random()
// 返回一个[0.0,1.0)的随机值
二、System类
- 所在包为java.lang包,因此不需要进行导包;
- 被final修饰了,因此不能被继承的;
- System包含了系统操作的一些常用的方法,比如获取当前时间所对应的毫秒值,再比如终止当前JVM等等。
- 不能直接通过new关键字去创建System类的对象,可以直接通过类名去调用(System类中的方法都是静态的)
public static long currentTimeMillis()
// 获取当前时间所对应的毫秒值
//(当前时间为0时区所对应的时间即就是英国格林尼治天文台旧址所在位置)
public static void exit(int status)
// 终止当前正在运行的Java虚拟机,0表示正常退出,非零表示异常退出
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
// 进行数值元素copy
三、Runtime
Runtime表示Java中运行时对象,可以获取到程序运行时设计到的一些信息。
public static Runtime getRuntime()
//当前系统的运行环境对象
public void exit(int status)
//停止虚拟机
public int availableProcessors()
//获得CPU的线程数
public long maxMemory()
//JVM能从系统中获取总内存大小(单位byte)
public long totalMemory()
//JVM已经从系统中获取总内存大小(单位byte)
public long freeMemory()
//JVM剩余内存大小(单位byte)
public Process exec(String command)
//运行cmd命令
四、Object类
- Object类所在包是java.lang包;
- 所有类都直接或者间接的继承自该类;
public String toString()
//返回该对象的字符串表示形式(可以看做是对象的内存地址值)
public boolean equals(Object obj)
//比较两个对象地址值是否相等;true表示相同,false表示不相同
protected Object clone()
//对象克隆
五、Objects类
- Objects类所在包是在java.util包下,因此在使用的时候需要进行导包;
- Objects类是被final修饰的,因此该类不能被继承;
- Objects类中没有无参构造方法,不能使用new关键字去创建Objects的对象;
- 所提供的方法都是静态的,可以通过类名直接去调用这些方法。
public static String toString(Object o)
// 获取对象的字符串表现形式
public static boolean equals(Object a, Object b)
// 比较两个对象是否相等
public static boolean isNull(Object obj)
// 判断对象是否为null
public static boolean nonNull(Object obj)
// 判断对象是否不为null
六、 BigInteger类
存储整数的时候,Java中默认是int类型。
int类型有取值范围:-2147483648 ~ 2147483647。
如果数字过大,我们可以使用long类型,但是如果long类型也表示不下怎么办呢?
就需要用到BigInteger,可以理解为:大的整数。
BigInteger所在包是在java.math包下,因此在使用的时候就需要进行导包。
6.1 构造方法
public BigInteger(int num, Random rnd)
//获取随机大整数,范围:[0 ~ 2的num次方-1]
public BigInteger(String val)
//获取指定的大整数
public BigInteger(String val, int radix)
//获取指定进制的大整数
下面这个不是构造,而是一个静态方法获取BigInteger对象
public static BigInteger valueOf(long val)
//静态方法获取BigInteger的对象,内部有优化
- 如果BigInteger表示的数字没有超出long的范围,可以用静态方法获取。
- 如果BigInteger表示的超出long的范围,可以用构造方法获取。
- 对象一旦创建,BigInteger内部记录的值不能发生改变。
- 只要进行计算都会产生一个新的BigInteger对象
6.2 成员方法
public BigInteger add(BigInteger val) //加法
public BigInteger subtract(BigInteger val) //减法
public BigInteger multiply(BigInteger val) //乘法
public BigInteger divide(BigInteger val) //除法
public BigInteger[] divideAndRemainder(BigInteger val) //除法,获取商和余数
public boolean equals(Object x) //比较是否相同
public BigInteger pow(int exponent) //次幂、次方
public BigInteger max/min(BigInteger val) //返回较大值/较小值
public int intValue(BigInteger val) //转为int类型整数,超出范围数据有误
七、BigDecimal类
在使用float或者double类型的数据在进行数学运算的时候,很有可能会产生精度丢失问题。计算机底层在进行运算的时候,使用的都是二进制数据; 当我们在程序中写了一个十进制数据 ,在进行运算的时候,计算机会将这个十进制数据转换成二进制数据,然后再进行运算,计算完毕以后计算机会把运算的结果再转换成十进制数据给我们展示。
如果我们使用的是整数类型的数据进行计算,那么在把十进制数据转换成二进制数据的时候不会存在精度问题; 如果我们的数据是一个浮点类型的数据,有的时候计算机并不会将这个数据完全转换成一个二进制数据,而是将这个将其转换成一个无限的趋近于这个十进数的二进制数据; 这样使用一个不太准确的数据进行运算的时候, 最终就会造成精度丢失;为了提高精度,Java就给我们提供了BigDecimal供我们进行数据运算。
7.1 构造方法
// 构造方法获取BigDecimal对象
public BigDecimal( double val)
public BigDecimal (String val)
// 静态方法获取BigDecimal对象
public static BigDecimal valueof(double val)
7.2 成员方法
public BigDecimal add(BigDecimal value) // 加法运算
public BigDecimal subtract(BigDecimal value) // 减法运算
public BigDecimal multiply(BigDecimal value) // 乘法运算
public BigDecimal divide(BigDecimal value) // 触发运算