Math
1.Math
(1)是一个帮助我们用于进行数学计算的工具类
(2)私有化构造方法,所有方法都是静态的
2.Math类常见方法
(1)public static int abs(int a):获得参数绝对值
(2)public static double ceil(double a):向上取整
(3)public static double floor(double a):向下取整
(4)public static int round(float a):四舍五入
(5)public static int max(int a,int b):获取两个int值中的较大值
(6)public static double pow(double a,double b):返回a的b次幂的值
(7)public static double sqrt(double a):返回a的平方根
(8)public static double cbrt(double a):返回a的立方根
(9)pubilc static double random():返回值为double的随机值,范围[0.0,1.0)
3.调用
使用类名直接调用:Math.abs(-11);
System
1.System
System也是一个工具类,提供了一些与系统相关的方法
2.System常见的方法
(1)public static void exit(int status):终止当前运行的Java虚拟机
(2)public static long currentTimeMillis():从时间原点开始返回当前系统的运行时间毫秒值形式
(3)public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数): 拷贝数组
数据源数组:数据源,要拷贝的数组
起始索引(前):从数据源数组的中的第几个索引开始拷贝
目的地数组:要拷贝到的数组
起始索引(后):目的地数组的开始索引
拷贝个数:拷贝的个数
3.注意:
(1)如果数据源数组和目的地数组都是基本数据类型,那么两者类型必须保持一致,否则会报错
(2)在拷贝的时候需要考虑数组的长度,如果超出范围就会报错
(3)如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型,要强制类型转换
4.调用
使用类名直接调用:System.exit(0);
Runtime
1.Runtime
Runtime表示当前虚拟机的运行环境
2.Runtime常见的方法
(1)public static Runtime getRuntime():当前系统的运行环境对象
(2)public void exit(int status):停止虚拟机
(3)public int availableProcessors():获得CPU的线程数
(4)public long maxMemory():JVM能从系统中获取总内存大小(单位为byte)
(5)public long totalMemory():JVM已经从系统中获取总内存大小(单位为byte)
(6)public long freeMemory():JVM剩余内存大小(单位为byte)
(7)public Process exec(String comand):运行cmd命令
3.调用
(1)先获取Runtime实例:Runtime r1 =Runtime.getRuntime();
r1.exit(0);
(2)先调用静态方法在调用里面的方法:Runtime.getRuntime.exit(0);
Object和Objects
1.Object
(1)Object
1.Object是Java中的顶级父类,所有的类都直接或间接继承于Object类
2.Object类中的方法可以被所有子类访问,所以我们要学习Object类和其中的方法
(2)Object的构造方法
public Object():空参构造
(3)Object的成员方法
1.pubilc String toString():返回对象的字符串表示形式
2.public boolean equals(Object obj):比较两个对象是否相等
3.protected Object clone(int a):对象克隆
(4)调用
使用对象名调用:Object obj=new object();
String str1 = obj.toString();
(5)注意
1.当我们打印一个对象的时候,底层会调用对象的toString方法,把对象变成字符串,然后打印在控制台上
2.字符串默认都是地址值,如果我们想打印一个对象属性值的话,那么就重写方法就可以了
(6)对象克隆
1.对象克隆就是把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制
2.细节
(1)方法的底层会帮我们创建一个对象,并把原对象中的数据拷贝过去
(2)书写细节:重写Object中的clone方法
让javabean类实现Cloneable接口
创建原对象并调用clone
3.浅克隆:不管对象内部的属性是基本数据类型还是引用数据类型,都完全拷贝过来(Object中的克隆是浅克隆)
4.深克隆:基本数据类型直接拷贝过来,字符串会复用串池里的数据,引用数据类型会重新创建新的
2.Objects
(1)Objects
Objects是一个工具类,提供了一些方法去完成一些功能
(2)Objects的成员方法
1.public static boolean equals(Object a, Object b):先做非空判断,比较两个对象
2.public static boolean isNull(Object obj):判断对象是否为null,为null返回true,反之则返回false
3.public static boolean nonNull(Object obj):判断对象是否为null,为null返回false,反之则返回true
(3)调用
使用类名调用:Objects.equals(s1,s2);
BigInteger和BigDecimal
1.BigInteger
(1)BigInteger
BigIntegerb=表示一个大的整数
(2)BigInteger的构造方法
1.public BigInteger(int num,Random rnd):获取随机大整数,范围为:[0~(2^num)-1]
2.public BigInteger(String val):获取指定的大整数
3.public BigInteger(String val,int radix):获取指定进制的大整数
(3)BigInteger的静态方法
public static BigIneger valueOf(long val):静态方法获取BigInteger对象,内部有优化
(4)细节
1.对象一旦创建,内部记录的值是不能发生改变的
2.字符串中的数字必须是整数,字符串中的数字必须和进制数吻合
3.静态方法获取能表示范围比较小,只能在long的取值范围之内,把-16~16进行了优化,它提前把-16~16先创建好BigInteger对象,如果多次获取不会创建新的
4.只要计算都会产生一个新的BigInteger对象
5.如果表示的数字不大,没有超出long的取值范围,建议使用静态方法
6.如果表示的数字比较大,超出了long的取值范围,建议使用构造方法
(5)BigInteger中常见的方法
1.public BigInteger add(BigInteger val):加法
2.public BigInteger subtract(BigInteger val):减法
3.public BigInteger multiply(BigInteger val):乘法
4.public BigInteger divide(BigInteger val):除法,获取商
5.public BigInteger[] divideAndRemainder(BigInteger val):除法,获取商和余数
6.public boolean equals(Object x):比较是否相同
7.public BigInteger pow(int exponent):次幂
8.public BigInteger max/min(BigInteger val):返回较大值/较小值
9.public int intValue(BigInteger val):转为int类型整数,超出范围数据有误
2.BigDecimal
(1)BigDecimal
BigDecimal用于小数的精确计算,用来表示很大的小数
(2)BigDecimal的构造方法
1.public BigDecimal(double val):通过传递double类型的小数创建对象,结果可能不精确
2.public BigDecimal(String val):通过字符串表示的小数来创建对象,数据精确
(3)BigDecimal的静态方法
public static BigDecimal valueOf(double val):静态方法获取对象
(4)细节
1.如果表示的数字不大,没有超出double的取值范围,建议使用静态方法
2.如果表示的数字比较大,超出了double的取值范围,建议使用构造方法
3.如果传递的数据是0~10的整数,那么方法会返回已经创建好的对象,不会重新创建
(5)BigDecimal中常见的方法
1.public BigDecimal add(BigDecimal val):加法
2.public BigDecimal subtract(BigDecimal val):减法
3.public BigDecimal multiply(BigDecimal val):乘法
4.public BigDecimal divide (BigDecimal val):除法
5.public BigDecimal divide(BigDecimal val,精确几位,舍人模式):除法
说明:舍入模式使用RoundingMode调用
(1)UP:远离零方向舍入
(2)DOWN:向零方向舍入
(3)CEILING:向正无限大方向舍入
(4)FLOOR:向负无限大方向舍入
(5)HALF_UP:四舍五入,当两边距离相等向上舍入
(6)HALF_DOWN:四舍五入,当两边距离相等向下舍入
(7)HALF_EVEN:四舍五入,当两边距离相等向相邻的偶数舍入