自制笔记 | Java基础——常用API(正则表达式、Math、Object、BigDecimal、时间类等)(持续更新...)

Math

是一个帮助我们用于进行数学计算的工具类

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) 四舍五入
public static int max(int a, int b) 获取两个int值中的较大值
public static double pow(double a, double b) 返回a的b次幂的值
public static double random() 返回值为double的随机值,范围**[0.0, 1.0)**

System

System也是一个工具类,提供了一些与系统相关的方法

System类的常用方法:

方法名 说明
public static void exit(int status) 终止当前运行的Java虚拟机
public static long currentTimeMillis() 返回当前系统的时间毫秒值形式
public static void arraycopy(数据源数组, 起始索引, 目的地数组, 起始索引, 拷贝个数) 数组拷贝

时间原点:1970年1月1日00:00:00,我国在东八区,有8小时时差,因此我们操作系统的时间原点是1970年1月1日08:00:00

arraycopy细节:

① 如果数据源数组和目的地数组都是基本数据类型,那么两者的类型必须保持一致,否则会报错
② 在拷贝的时候需要考虑数组的长度,如果超出范围也会报错
③ 如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型

Runtime

Runtime表示当前虚拟机的运行环境

Runtime类的常用方法:

方法名 说明
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命令

注意:Runtime无法直接创建对象,因为其构造方法是私有权限的,需要通过getRuntime()来获取对象

Object

Object是Java中的顶级父类。所有的类都直接或间接地继承于Object类

Object类中的方法可以被所有子类访问

Object的构造方法:

方法名 说明
public Object() 空参构造

Object的常用成员方法:

方法名 说明
public String toString() 返回对象的字符串表示形式
public boolean equals(Object obj) 比较两个对象是否相等
protected Object clone(int a) 对象克隆

toString方法的结论:如果我们打印一个对象,想要看到属性值的话,那么就重写toString方法。(因为默认的toString方法实际上是打印地址值的)

equals方法的结论:如果没有重写equals方法,那么默认使用Object中的方法进行比较,比较的是地址值是否相等。若我们需要比较属性值是否相等,就要重写equals方法

对象克隆:

把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象赋值

浅克隆:不管对象内部的属性是基本数据类型还是引用数据类型,都完全拷贝过来
深克隆:基本数据类型拷贝过来,字符串复用,引用数据类型会重新创建新的

clone方法默认是浅克隆

书写细节:

① 重写Object中的clone方法(因为修饰符权限是protected,无法通过创建子类对象来调用)
② 让javabean类实现Cloneable接口
③ 创建原对象并调用clone就可以了

如果需要深克隆需要重写方法或者使用第三方工具类

Objects:

Objects是一个工具类,提供了一些方法去完成一些功能

Objects的成员方法:

方法名 说明
public static boolean equals(Object a, Object b) 先做非空判断,比较两个对象
public static boolean isNull(Object obj) 判断对象是否为null,为null返回true
public static boolean nonNull(Object obj) 判断对象是否为null,跟isNull结果相反

equals方法细节:

① 若a, b不全为null,方法的底层会判断a是否为null,如果为null,直接返回false
② 如果a不为null,那么就会调用a的equals方法
③ 如果a是Student类型,那么最终还是会调用Student中的equals方法(如果没有重写,比较地址值;如果重写了,就比较属性值)

BigInterer

BigInterger获取对象方法:

方法名 说明
public BigInteger(int num, Random rnd) 获取随机大整数,范围:[0 ~ 2的num次方-1]
public BigInteger(String val) 获取指定的大整数
public BigInteger(String val, int radix) 获取指定进制的大整数
public static BigInteger valueOf(long val) 静态方法获取BigInteger的对象,内部有优化

细节:对象一旦创建,内部记录的值**不能发生改变,**只要进行计算就会产生一个新的BigInteger对象

建议:数字不超过long范围时使用静态方法获取对象;而超过long范围时使用第二个构造方法

静态方法获取对象细节:

① 能表示范围比较小,只能在long的取值范围之内,如果超出long的范围就不行了
② 在内部对常用的数字:-16~16进行了优化,提前把这些数字先创建好了BigInteger的对象,如果多次获取不会重新创建新的

BigInteger常见成员方法:

方法名 说明
public BigInteger add(BigInteger val) 加法
public BigInteger subtract(BigInteger val) 减法
public BigInteger multiply(BigInteger val) 乘法
public BigInteger divide
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值