Java:常用的API:Math,System,Object,Objects工具类,BigInteger,BigDecima

 一.Math

 1.Math.abs():获取参数的绝对值

有取值范围限制:例如,int的取值为:-2147483648~2147483647

jdk15以后,使用Math.absExact(),可以实现抛出异常的操作。

 System.out.println(Math.abs(-88));//88
        System.out.println(Math.abs(88));//88

2.Math.ceil():向上取整

相当于进一法

 System.out.println(Math.ceil(12.34));//13.0
        System.out.println(Math.ceil(12.54));//13.0
        System.out.println(Math.ceil(-12.54));//-12.0
        System.out.println(Math.ceil(-12.34));//-12.0

3.Math.floor():向下取整

相当于去尾法

 System.out.println(Math.floor(12.34));//12.0
        System.out.println(Math.floor(12.54));//12.0
        System.out.println(Math.floor(-12.54));//-13.0
        System.out.println(Math.floor(-12.34));//-13.0

4.Math.round():四舍五入

 System.out.println(Math.round(12.34));//12.0
        System.out.println(Math.round(12.54));//13.0
        System.out.println(Math.round(-12.54));//-13.0
        System.out.println(Math.round(-12.34));//-12.0

5.Math.max()和Math.min():两数之间取最值

 System.out.println(Math.max(20, 30));//30
        System.out.println(Math.min(20, 30));//20

6.Math.pow():获取a的b次幂 

 System.out.println(Math.pow(2, 3));//8.0

7.Math.sqrt():开平方根

 System.out.println(Math.sqrt(4));//2.0

8.Math.cbrt():开立方根

 System.out.println(Math.cbrt(8));//2.0

9.Math.random():获取[0.0,1.0)之间的随机数

System.out.println(Math.random());

10.取一个数(number)的个,十,百,千,万上的数字

个位数 = number /1 % 10;

十位数=number /10 % 10;

百位数=number /100 % 10;

千位数=number /1000 % 10;

万位数=number /10000 % 10;

二.System

1.public static void exit(int status):终止当前虚拟机

  • 状态码为0时,虚拟机正常停止;非0时为异常停止。

2.public static long currentTimeMillis():返回当前系统的时间毫秒值形式(时间原点是北京时间:1970年1月1日 8:00)

 long l = System.currentTimeMillis();
        System.out.println((l/1000/60/60/24/365)+"年");//53年

3.public static void arraycopy():数组拷贝 

  • 数组类型必须一样
  • 如果arr1被arr拷贝,需要传递五个参数(arr1,arr1的拷贝索引,arr2,arr2的目标索引,拷贝的数据长度)
 int[] arr1 = new int[]{1,2,3,4,5,6,7,8,9,10};
        int[] arr2 = new int[10];

        System.arraycopy(arr1,0,arr2,4,3);

        for (int i = 0; i < arr2.length; i++) {
            System.out.print(arr2[i]+" ");//0 0 0 0 1 2 3 0 0 0 
        }

三.Runtime 

1.public static Runtime getRuntime():当前系统的运行环境对象

2.public void exit(int status):停止虚拟机

3.public int availableProcessors():获得CPU的线程数

System.out.println(Runtime.getRuntime().availableProcessors());//cpu线程数

4.public long maxMemory():JVM能从系统中获取总内存大小(单位byte)

 System.out.println(Runtime.getRuntime().maxMemory()/1024/1024+"MB");

5.public long totalMemory():JVM已经从系统中获取总内存大小(单位byte)

  System.out.println(Runtime.getRuntime().totalMemory()/1024/1024+"MB");

6.public long freeMemory():JVM剩余内存大小(单位byte)

   System.out.println(Runtime.getRuntime().freeMemory()/1024/1024+"MB");

7.public Process exec (String command):运行cmd命令

 Runtime.getRuntime().exec("calc");//打开计算器

四.Object :是Java中的顶级父类,所有的父类都继承于Object类

1.没有有参构造方法

2.toString():返回对象的字符串表示形式

  • 重写toString(),返回对象的属性值拼接的字符串。

3.equals():比较对象是否相等

  • 如果不重写方法,比较的是对象的地址值;重写之后就是比较对象内部的属性值了

例如:

        String s = "abc";
        StringBuilder sb = new StringBuilder("abc");

        System.out.println(s.equals(sb));//false
        System.out.println(sb.equals(s));//false

字符串s调用的的equals是需要的传参必须是字符串,而sb是StringBuilder类的一个对象,所以返回的是false;

sb调用的equals是object父类中的方法,没有重写的情况是比较的是两个对象的地址值,所以返回的也是false。 

4.clone():对象克隆

1.新建一个实体类,实现标记接口Cloneable,重写clone()方法

2.默认为浅克隆(只克隆地址值,类似于调用字符串池),如果需要深克隆(克隆属性值,相当于新建了一个对象)的话需要重写方法或者使用第三方工具类

 User u1 = new User("张三","23");

        User u2 = (User) u1.clone();

        System.out.println(u1);//User{username='张三', password='23'}
        System.out.println(u2.toString());//User{username='张三', password='23'}

 五.objects对象工具类

1.public static boolean equals(object a, object b):先做非空判断,比较两个对象

2.public static boolean isNull(object obj):判断对象是否为null,为null返回true ,反之

3.public static boolean nonNul1(object obj):判断对象是否为null,跟isNull的结果相反

六.BigInteger:表示一个大整数

1.在java中,有四种数据类型:byte(1个字节),short(2个字节),int(4个字节),long(8个字节)

2.BigInteger的构造方法: 

  • public BigInteger(int num,Random rnd):获取随机大整数,范围:[e ~2的num次方-1]
  • //获取一个随机大整数
            BigInteger bi1 = new BigInteger(4,new Random());
            System.out.println(bi1);//[0~16)

  • public BigInteger(string val):获取指定的大整数(val只能是整数)
  •  //获取一个指定大整数
            BigInteger bi2 = new BigInteger("100");
            System.out.println(bi2);//100

  • public BigInteger(string val, int radix):获取指定进制的大整数(radix为进制),数字要和进制吻合。
  •         //获取一个指定进制的整数
            BigInteger bi3 = new BigInteger("1001",2);
            System.out.println(bi3);//9

  • public static BigIntegervalueOf(long val):静态方法获取BigInteger的对象,内部有优化(节约内存)
  •         //在long的取值范围内,-16到16是静态的
            BigInteger bi5 = BigInteger.valueOf(100);
            System.out.println(bi5);//100

3.对象一旦创建,内部记录的值不能发生改变

4.BigInteger的成员方法

  • public BigInteger add(BigInteger val):加法
  • public BigInteger subtract(BigInteger val):减法
  • public BigInteger multiply(BigInteger val):乘法
  • public BigInteger divide(BigInteger val):除法,获取商
  • public BigInteger[] divideAndRemainder (BigInteger val):除法,获取商和余数
  • public boolean equals(object x):比较是否相同
  • public BigInteger pow(int exponent):次幂
  • public BigInteger max/min(BigInteger val):返回较大值/较小值
  • public int intValue(BigInteger val):转为int类型整数,超出范围数据有误
BigInteger bd1 = BigInteger.valueOf(3);
        BigInteger bd2 = BigInteger.valueOf(10);

        //加
        BigInteger bd3 = bd1.add(bd2);
        System.out.println(bd3);//15

        //除法:商和余数
        BigInteger[] arr = bd2.divideAndRemainder(bd1);
        System.out.println(arr.length);//2
        System.out.println(arr[0]);//3
        System.out.println(arr[1]);//1

        //比较相同
        boolean result = bd1.equals(bd2);
        System.out.println(result);//false

        //次幂
        BigInteger bd4 = bd2.pow(2);
        System.out.println(bd4);//100

        //max
        BigInteger bd5  = bd2.max(bd1);
        System.out.println(bd5);//10

        //转化为int类型整数,超出范围数据有误
        BigInteger bd6 = BigInteger.valueOf(2147483648L);
        int i = bd6.intValue();
        System.out.println(i);//-2147483648

        double v = bd6.doubleValue();
        System.out.println(v);//2.147483648E9

七.BigDecima:用于小数的精确计算,用来表示很大的小数

Java:常用的API:Math,System,Object,Objects工具类,BigInteger,BigDecima_第1张图片

 1.构造方法

  • 直接传入小数,这种方式是不精确的,不建议使用
//这种方式是不精确的,不建议使用
        BigDecimal bd1 = new BigDecimal(0.01);
        BigDecimal bd2 = new BigDecimal(0.09);
        System.out.println(bd1);//0.01000000000000000020816681711721685132943093776702880859375
        System.out.println(bd2);//0.0899999999999999966693309261245303787291049957275390625
  • 通过传递字符串表示的小数来创建对象,一般采用这种方式创建对象
  •         BigDecimal bd3 = new BigDecimal("0.01");
            BigDecimal bd4 = new BigDecimal("0.09");
            BigDecimal bd5 = bd3.add(bd4);
            System.out.println(bd3);//0.01
            System.out.println(bd4);//0.09
            System.out.println(bd5);//0.10

  •  通过静态方法获取对象,如果表示的数字范围没有超过double,建议采用静态方法;反之,则采用构造方法创建对象。如果传入数据是0到10之间的整数,则返回已创建好的对象,不会重新new,以节约内存。
        BigDecimal bd6 = BigDecimal.valueOf(10);
        System.out.println(bd6);//10

 2.常见的成员方法

  • public static BigDecimal valueOf(double val):获取对象
  • public BigDecimal add(BigDecimal val):加法
  • public BigDecimal subtract(BigDecimal val):减法
  • public BigDecimal multiply(BigDecimal val):乘法
  • public BigDecimal divide(BigDecimal val):除法
  • public BigDecimal divide(BigDecimal val,精确几位,舍入模式):除法
 BigDecimal bd1 = BigDecimal.valueOf(2.0);
        BigDecimal bd2 = BigDecimal.valueOf(10.0);

        //加
        BigDecimal bd3 = bd1.add(bd2);//12.0
        System.out.println(bd3);
        //减
        BigDecimal bd4 = bd2.subtract(bd1);
        System.out.println(bd4);//8.0
        //乘
        BigDecimal bd5 = bd1.multiply(bd2);
        System.out.println(bd5);//20.00
        //除法
        BigDecimal bd6 = bd2.divide(bd1,2, RoundingMode.HALF_UP);
        System.out.println(bd6);//5.00

你可能感兴趣的:(Java,SE,java,jvm,servlet,intellij-idea,开发语言)