Java基础10:常用API(上)

一、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)doublea的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

  • Runtime表示当前虚拟机的运行环境
方法名返回类型说明
getRuntime()Runtime当前系统的运行环境对象
exit(int status)void停止虚拟机
availableProcessors()int获取CPU的线程数
maxMemory()longJVM能从系统中获取总内存大小(单位byte)
totalMemory()longJVM已经从系统中获取总内存大小(单位byte)
freeMemory()longJVM剩余内存大小(单位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();
        // CPU线程数
        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);
    }
}

请添加图片描述

四、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的步骤:
    1. 重写Object中的clone方法。
    2. 让JavaBean类实现Cloneable接口。
    3. 创建原对象并调用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对象
  • 区别:
    1. 如果要表示的数字不大,使用静态方法
    2. 如果表示的数字超出了double取值范围,用构造方法
    3. 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iFulling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值