一、Math
- 是一个帮助我们进行数学计算的工具类
- 私有化构造方法,所有的方法都是静态的。
方法名 | 返回类型 | 说明 |
---|
abs(int a) | int | 绝对值 |
ceil(double a) | double | 向上取整 |
floor(double a) | double | 向下取整 |
round(float a) | int | 四舍五入 |
max(int a, int b) | int | 两个值中的最大值 |
pow(double a, double b) | double | a的b次幂 |
sqrt(double a) | double | 平方根 |
cbrt(double a) | double | 立方根 |
random() | double | [0.0, 1.0) 中的随机值 |
二、System
- System是一个工具类,提供一些与系统相关的方法
方法名 | 返回类型 | 说明 |
---|
exit(int status) | void | 终止当前运行的JVM |
currentTimeMillis() | long | 当前系统的毫秒值时间 |
arraycopy(数据源数组, 起始索引, 目的地数组, 起始索引, 拷贝个数) | void | 数组拷贝 |
1. currentTimeMillis
- 起始时间是1970年1月1日00:00:00,东八区为08:00:00
2. arraycopy
- 如果数据源数组和目的数组都是基本数据类型,那么两者的类型必须保持一致。
- 拷贝时如果超出数组范围会报错。
- 如果数据源数组和目的数组都是引用数据类型,那么子类类型可以赋值给父类类型。
三、Runtime
方法名 | 返回类型 | 说明 |
---|
getRuntime() | Runtime | 当前系统的运行环境对象 |
exit(int status) | void | 停止虚拟机 |
availableProcessors() | int | 获取CPU的线程数 |
maxMemory() | long | JVM能从系统中获取总内存大小(单位byte) |
totalMemory() | long | JVM已经从系统中获取总内存大小(单位byte) |
freeMemory() | long | JVM剩余内存大小(单位byte) |
exec(String command) | Process | 运行cmd命令 |
import java.io.IOException;
public class Demo1 {
public static void main(String[] args) throws IOException {
Runtime runtime = Runtime.getRuntime();
System.out.println(runtime.availableProcessors() + "线程");
System.out.println(runtime.maxMemory() + " byte");
System.out.println(runtime.totalMemory() + " byte");
System.out.println(runtime.freeMemory() + " byte");
System.out.println(runtime.exec("ifconfig"));
runtime.exit(0);
}
}
![请添加图片描述](https://i-blog.csdnimg.cn/blog_migrate/c5644281ffb3737be6e09770cb0152e4.jpeg)
四、Object
- Object是Java中的顶级父类。所有的类都直接或间接的继承于Object类。
- Object类中的方法可以被所有子类访问。
方法名 | 返回类型 | 说明 |
---|
toString() | String | 对象的字符串表现形式 |
equals(Object obj) | boolean | 比较两个对象是否相等 |
clone(int a) | Object | 对象克隆 |
1. toString
- 默认情况下,toString方法返回的是地址值。
- 如果想看到属性值,就重写toString方法,把对象的属性值进行拼接。
public String toString() {
return "Student{name = " + name + ", age = " + age + ", gender = " + gender + "}";
}
2. equals
- 如果没有重写equals方法,默认使用Object中的方法进行比较,比较的是地址值是否相等。
- 重写equals后比较对象内部的属性值。
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age && Objects.equals(name, student.name) && Objects.equals(gender, student.gender);
}
3. clone
- clone默认是浅克隆,如果要深克隆需要重写方法或使用第三方工具类。
- 使用clone的步骤:
- 重写Object中的clone方法。
- 让JavaBean类实现Cloneable接口。
- 创建原对象并调用clone方法。
- clone方法由protected修饰,必须在子类中重写才能调用。
- Cloneable接口:是一个标记性接口,如果没有实现接口,当前类的对象就不能克隆。
五、Objects
- Objects是一个工具类,提供了一些方法去完成一些功能。
方法名 | 返回类型 | 说明 |
---|
equals(Object a, Object b) | boolean | 先做非空判断,再比较两个对象 |
isNull(Object obj) | boolean | 判断对象是否为null,为null返回true |
nonNull(Object obj) | boolean | 判断对象是否为null,为null返回false |
六、BigInteger
- 表示大整型,对象一旦创建,内部记录的值不能发生改变。
- 只要进行计算都会产生一个新的BigInteger对象。
- 如果数字没有超出long的范围,用静态方法valueOf获取。
- 如果数字超出了long的范围,用构造方法获取。
1. 构造方法(获取BigInteger)
方法名 | 说明 |
---|
BigInteger(int num, Random rnd) | 获取随机大整数,范围:[0~
2
n
u
m
2^{num}
2num -1] |
BigInteger(String val) | 获取指定的大整数(常用) |
BigInteger(String val, int radix) | 获取指定进制的大整数 |
BigInteger.valueOf(long val) | 静态方法获取BigInteger对象,内部对-16~16有优化(常用) |
2. 常用方法
方法名 | 返回类型 | 说明 |
---|
add(BigInteger val) | BigInteger | 加法 |
subtract(BigInteger val) | BigInteger | 减法 |
multiply(BigInteger val) | BigInteger | 乘法 |
divide(BigInteger val) | BigInteger | 除法,获取商 |
divideAndRemainder(BigInteger val) | BigInteger[] | 除法,获取商和余数 |
equals(Object x) | boolean | 比较是否相同 |
pow(int exponent) | BigInteger | 次幂 |
max/min(BigInteger val) | BigInteger | 返回较大值/较小值 |
intValue(BigInteger val) | int | 转为int数据类型,超出范围数据有误 |
七、BigDecimal
1. 构造方法(获取BigDecimal)
方法名 | 说明 |
---|
BigDecimal(String val) | 构造方法获取BigDecimal对象 |
BigDecimal.valueOf(double val) | 静态方法获取BigDecimal对象 |
- 区别:
- 如果要表示的数字不大,使用静态方法
- 如果表示的数字超出了double取值范围,用构造方法
- valueOf 对 [0, 10] 之间的整数有优化,会返回创建好的对象,不会重新new
2. 常用方法
方法名 | 返回类型 | 说明 |
---|
add(BigDecimal val) | BigDecimal | 加法 |
subtract(BigDecimal val) | BigDecimal | 减法 |
multiply(BigDecimal val) | BigDecimal | 乘法 |
divide(BigDecimal val) | BigDecimal | 除法 |
divide(BigDecimal val, 精确几位, 舍入模式) | BigDecimal | 除法重写 |
- 舍入模式一般使用四舍五入
RoundingMode.HALF_UP