今天学习了Java中的Math,Random,Enum,BigDecimal/BigInteger,System类:
1.Math类:Math类提供了大量的数学计算工具,Math是final修饰的终结类不能被继承,Math的方法都是static修饰的,可直接通过类名来调用;
2.Math类常用方法:
abs():用来求绝对值;
ceil():用来求大于这个数的最小整数,以double类型返回;
floor():用来求小于这个数的最大整数,以double类型返回;
max/min(int/float/double/long,int/float/double/long):求两个数的最大值或最小值;
random():获得一个0-1的随机数,返回值为double类型;
round(float/double):获得四舍五入后的值,返回值为int或long;
sqrt():开根号,返回值为double类型,如果输入负数则返回NaN;
pow(底数,次方):求底数的次方数;
sin/cos/tan():求三角函数值;
3.Random类:根据起源数字进行迭代变化,产生随机数,Random生成的是伪随机数,相同种子数在相同次数下的随机数相等;
构造方法:
Random():利用系统时间来默认作为种子数进行迭代;
Random(long):自己提供种子数来迭代;
常见方法:
nextInt/Long():生成一个int/long类型的随机数;
nextInt(int):生成一个0-给定值范围的随机int值;
nextFloat/Double():生成一个0-1范围内的float/double类型的数字;
nextBoolean():生成一个随机的boolean值,true和false的概率相等;
4.BigInteger/BigDecimal类(用于处理精确数值):
BigInteger类可以处理任意长度的整数;
BigDecimal类可以处理任意长度的浮点数;
创建方式:
BigInteger();
BigInteger(int/long):用long进行初始化时要在结尾加L;
BigInteger(数据,进制):将不同进制的数值转为十进制;
BigInteger.valueOf();
BigDecimal();
BigDecimal.valueOf();
Scanner的对象:nextBigDecimal(),nextBigInteger();
常见方法:
add():加法;
subtract():减法;
multiply():乘法;
remainder():取余;
divide():除法,BigInteger只保留整数部分,且没有四舍五入,BigDecimal的用法与它完全不同;
divideAndRemainder():除法并取余,返回一个Integer数组,数组中有两个元素,一个是商一个是余数;
doubleValue():将BigDecimal转换为double类型;
max/min():求最大值/最小值;
对于BigDecimal的divide:语法:divide(BigDecimal数据,小数点后保留几位,RoundingMode)
5.BigDecimal的八种RoundingMode:
(1)UP:可看作在数轴上向着远离0的方向进行舍取;
(2)DOWN:可看作在数轴上向着0的方向进行舍取;
(3)HALF_UP:四舍五入;
(4)HALF_DOWN:五舍六入;
(5)HALF_EVEN:如果舍入值前一位是奇数则四舍五入,如果是偶数则五舍六入;
(6)CEILING:可看作在数轴上向着正无穷的方向进行舍取;
(7)FLOOR:可看作在数轴上向着负无穷的方向进行舍取;
(8)UNNECESSARY:如果舍入值是0则正常处理,如果舍入值不是0则异常处理;
6.Enum枚举:
列举,从给定的值中做选择
语法:
[修饰符] Enum 枚举名{};
所有的枚举类型实际上是继承了java.lang.Enum类;
枚举中定义的都是static和final修饰的常量;
values():用来以数组形式返回枚举的每个常量;
valueOf():将字符串转换为枚举的实例;
ordinal():用来返回枚举成员的索引;
compareTo():用来比较在枚举中常量定义的顺序;
7.Timer类:
用于实现定时任务;
常见的方法就是schedule(),语法为schedule(TimerTask,第一次实现延迟的时间,间隔执行的时间);
TimerTask是一个抽象类,需要有子类来重写抽象run方法。
在schedule方法中的TimeTask通常用内部类来实现;
cancel():用于终止计时器;
8.System类:
位于Java.lang.System
常见方法:
currentTimeMillis:获取从1970年1月1日零点零分零秒到现在的毫秒数;
exit(0):退出Java虚拟机,0表示正常退出,否则则是异常退出;
getenv(String):获取指定的环境变量;
getProperty(String):获取指定的系统属性;
getProperties():返回所有的系统属性,是Properties类型的;
arraycopy(数组1,起始位置,数组2,起始位置,长度):从原数组指定位置拷贝指定长度到指定数组的指定位置,会覆盖指定数组原来已有元素;
gc():执行垃圾回收
如有错误,还请批评斧正。