常用API

180 阅读3分钟

1.Math

定义:Math是一个帮助我们用于数学计算的工具类哦

  • Math.abs();取绝对值
  • Math.ceil();向上取整
  • Math.floor();向下取整
  • Math.round();四舍五入
  • Math.max();取两个数中的较大数
  • Math.pow();返回a的b次幂
  • Math.random();随机返回[0.0,1.0)中的一个数

abs

abs有bug:就是,负数如果没有对应的正数,则代码会出错,以int为例子,它的取值范围是-2147483648 ~ 2147483647,如果我们输入-2147483648没有正数与之对应,所有abs结果产生bug

System.out.println(Math.abs(-2147483648))

2023-11-26.png

结果如上图,无法输出相应的绝对值,所以要使用有正数与之相对应的负数。

public class math {
    public static void main(String[] args) {
        //所以方法全是静态,直接Math.调用即可

        //1.  abs  获取参数的绝对值
        int a = -2147483648;
        Math.abs(a);
        System.out.println(Math.abs(a));

        //2.  ceil 向上取整
        double b =2.45;
        System.out.println(Math.ceil(b));
        
        //3.  floor 向下取整(也叫去尾法)
        double c = 3.55;
        System.out.println(Math.floor(c));

        //4.  round 四舍五入
        double d = 3.59;
        double e = 3.44;
        System.out.println(Math.round(d));
        System.out.println(Math.round(e));

        //5.  max/min 比大小
        System.out.println(Math.max(d,e));
        System.out.println(Math.min(d,e));

        //6.  pow 获取a的b次幂
        int p = 4;
        int m = 2;
        System.out.println(Math.pow(p,m));

        //7. sqrt 开平方
        System.out.println(Math.sqrt(4.0));

        //8. random 获取0~1的随机数,不包括1,不常用


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


    }
}

2.System

public class system {
    public static void main(String[] args) {
        //方法的形参,里面是一个状态码:0:,非0:
        //0:表示虚拟机正常停止
        //非0:表示虚拟机异常停止
        //System.exit(0);
        //System.out.println("我执行了没有");

       long l = System.currentTimeMillis();
        System.out.println(l);
        //在开头设置一个
        //结尾设置一个,最后输出结尾减开头得到执行完代码花费的毫秒时间


        //arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数)数组拷贝
        //细节:如果数据源数组和目的地属猪都是基本数据类型,那么两者的类型必须保持一致,否则会报错
        //也就是说int的数组不能拷贝到double的数组当中
        //长度不能越界
        //还有,如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类
        //就是要多态,然后后面强转就行
        int arr1[] = {1,2,3,4,5,6,7,8,9,10};
        int arr2[] = new int[10];
        System.arraycopy(arr1,6,arr2,2,3);
        for (int i = 0; i < arr2.length; i++) {
            System.out.println(arr2[i]);
        }
        

    }
}

image.png 结果如上图

3.Runtime

public class runtime111 {
    public static void main(String[] args) throws IOException {
        //Runtime表示虚拟机的运行环境,它不是静态的
        //获取到它的对象runtime对象
        Runtime r1 = Runtime.getRuntime();
        Runtime r2 = Runtime.getRuntime();
        System.out.println(r1 == r2);//true 表示是同一个对象,因为地址值相同

        //exit停止虚拟机
        //r1.exit(0);

        //availableProcessors是用来获取你电脑cpu的线程数的
        r1.availableProcessors();
        System.out.println(r1.availableProcessors());

        //总内存大小,单位为byte字节,maxmemory
        System.out.println(r1.maxMemory()/1024/1024);

        //已经获取的总内存大小,单位byte字节 totalmemory
        System.out.println(r1.totalMemory()/1024/1024);

        //剩余内存大小,单位byte字节freememory
        System.out.println(r1.freeMemory()/1024/1024);

        //运行cmd命令

        //shutdown : 关机 加上参数才能执行
        //-s:默认一分钟关机
        //-s -t 指定时间(秒):指定关机时间
        //-a:取消关机操作
        //-r:关机并重启
        r1.exec("shutdown -a");
    }
}