Java基础10:常用API
一、Math 二、System 1. currentTimeMillis 2. arraycopy
三、Runtime 四、Object 1. toString 2. equals 3. clone
五、Objects 六、BigInteger 1. 构造方法(获取BigInteger) 2. 常用方法
七、BigDecimal 1. 构造方法(获取BigDecimal) 2. 常用方法
一、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 ) ;
}
}
四、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}
2 n u m -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