Java 常用API

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1. Math类

Math类简介

Math类所在包为java.lang包因此在使用的时候不需要进行导包。并且Math类被final修饰了因此该类是不能被继承的。Math类包含执行基本数字运算的方法我们可以使用Math类完成基本的数学运算。

常用方法

public static int abs(int a)					// 返回参数的绝对值
public static double ceil(double a)				// 返回大于或等于参数的最小整数
public static double floor(double a)			// 返回小于或等于参数的最大整数
public static int round(float a)				// 按照四舍五入返回最接近参数的int类型的值
public static int max(int a,int b)				// 获取两个int值中的较大值
public static int min(int a,int b)				// 获取两个int值中的较小值
public static double pow (double a,double b)	// 计算a的b次幂的值
public static double random()					// 返回一个[0.0,1.0)的随机值

案例演示
接下来我们就来演示一些这些方法的执行效果如下所示

public class MathTest01 {

    public static void main(String[] args) {

        // public static int abs(int a)         返回参数的绝对值
        System.out.println("-2的绝对值为" + Math.abs(-2));
        System.out.println("2的绝对值为" + Math.abs(2));

        // public static double ceil(double a)  返回大于或等于参数的最小整数
        System.out.println("大于或等于23.45的最小整数位" + Math.ceil(23.45));
        System.out.println("大于或等于-23.45的最小整数位" + Math.ceil(-23.45));

        // public static double floor(double a) 返回小于或等于参数的最大整数
        System.out.println("小于或等于23.45的最大整数位" + Math.floor(23.45));
        System.out.println("小于或等于-23.45的最大整数位" + Math.floor(-23.45));

        // public static int round(float a)     按照四舍五入返回最接近参数的int
        System.out.println("23.45四舍五入的结果为" + Math.round(23.45));
        System.out.println("23.55四舍五入的结果为" + Math.round(23.55));

        // public static int max(int a,int b)   返回两个int值中的较大值
        System.out.println("23和45的最大值为: " + Math.max(23, 45));

        // public static int min(int a,int b)   返回两个int值中的较小值
        System.out.println("12和34的最小值为: " + Math.min(12 , 34));

        // public static double pow (double a,double b)返回a的b次幂的值
        System.out.println("2的3次幂计算结果为: " + Math.pow(2,3));

        // public static double random()返回值为double的正值[0.0,1.0)
        System.out.println("获取到的0-1之间的随机数为: " + Math.random());
    }

}

运行程序进行测试控制台输出结果如下

-2的绝对值为2
2的绝对值为2
大于或等于23.45的最小整数位24.0
大于或等于-23.45的最小整数位-23.0
小于或等于23.45的最大整数位23.0
小于或等于-23.45的最大整数位-24.0
23.45四舍五入的结果为23
23.55四舍五入的结果为24
2345的最大值为: 45
1234的最小值为: 12
23次幂计算结果为: 8.0
获取到的0-1之间的随机数为: 0.7322484131745958

2. System类

System类简介

System类所在包为java.lang包因此在使用的时候不需要进行导包。并且System类被final修饰了因此该类是不能被继承的。System包含了系统操作的一些常用的方法。比如获取当前时间所对应的毫秒值再比如终止当前JVM等等。

常用方法

public static long currentTimeMillis()			// 获取当前时间所对应的毫秒值当前时间为0时区所对应的时间即就是英国格林尼治天文台旧址所在位置
public static void exit(int status)				// 终止当前正在运行的Java虚拟机0表示正常退出非零表示异常退出
public static native void arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length); // 进行数值元素copy

案例演示
案例1演示currentTimeMillis方法

public class SystemDemo2 {
    public static void main(String[] args) {
        //判断1~100000之间有多少个质数

        long start = System.currentTimeMillis();

        for (int i = 1; i <= 100000; i++) {
            boolean flag = isPrime2(i);
            if (flag) {
                System.out.println(i);
            }
        }
        long end = System.currentTimeMillis();
        //获取程序运行的总时间
        System.out.println(end - start); //方式一1514 毫秒  方式二71毫秒
    }
    //改进之后判断是否为质数的方式效率高
    public static boolean isPrime2(int number) {
        for (int i = 2; i <= Math.sqrt(number); i++) {
            if (number % i == 0) {
                return false;
            }
        }
        return true;
    }
}

案例2演示exit方法

public class SystemDemo01 {

    public static void main(String[] args) {
        
        // 输出
        System.out.println("程序开始执行了.....");
        
        // 终止JVM
        System.exit(0);
        
        // 输出
        System.out.println("程序终止了..........");//不会被打印
        
    }
    
}

案例3演示arraycopy方法
方法参数说明

// src: 	 源数组
// srcPos  源数值的开始位置
// dest    目标数组
// destPos 目标数组开始位置
// length:   要复制的元素个数
public static native void arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length); 

代码如下所示

public class SystemDemo01 {

    public static void main(String[] args) {

        // 定义源数组
        int[] srcArray = {23 , 45 , 67 , 89 , 14 , 56 } ;

        // 定义目标数组
        int[] desArray = new int[10] ;

        // 进行数组元素的copy: 把srcArray数组中从0索引开始的3个元素从desArray数组中的1索引开始复制过去
        System.arraycopy(srcArray , 0 , desArray , 1 , 3);

        // 遍历目标数组
        for(int x = 0 ; x < desArray.length ; x++) {
            if(x != desArray.length - 1) {
                System.out.print(desArray[x] + ", ");
            }else {
                System.out.println(desArray[x]);
            }

        }

    }

}

使用这个方法我们也可以完成数组元素的删除操作如下所示

public class SystemDemo02 {
    public static void main(String[] args) {
        // 定义一个数组
        int[] srcArray = {23 , 45 , 67 , 89 , 14 , 56 } ;
        // 删除数组中第3个元素(67)要删除67这个元素我们只需要将67后面的其他元素依次向前进行移动即可
        System.arraycopy(srcArray , 3 , srcArray , 2 , 3);
        // 遍历srcArray数组
        for(int x = 0 ; x < srcArray.length ; x++) {
            if(x != desArray.length - 1) {
                System.out.print(srcArray[x] + ", ");
            }else {
                System.out.println(srcArray[x]);
            }
        }
    }
}

arraycopy方法底层细节

1.如果数据源数组和目的地数组都是基本数据类型那么两者的类型必须保持一致否则会报错

2.在拷贝的时候需要考虑数组的长度如果超出范围也会报错

3.如果数据源数组和目的地数组都是引用数据类型那么子类类型可以赋值给父类类型

3. Runtime类

Runtime类简介

Runtime表示Java中运行时对象可以获取到程序运行时设计到的一些信息

常用方法

public static Runtime getRuntime()		//当前系统的运行环境对象
public void exit(int status)			//停止虚拟机
public int availableProcessors()		//获得CPU的线程数
public long maxMemory()				    //JVM能从系统中获取总内存大小单位byte
public long totalMemory()				//JVM已经从系统中获取总内存大小单位byte
public long freeMemory()				//JVM剩余内存大小单位byte
public Process exec(String command) 	//运行cmd命令

案例演示

public class RunTimeDemo1 {
    public static void main(String[] args) throws IOException {
        /*
            public static Runtime getRuntime() 当前系统的运行环境对象
            public void exit(int status) 停止虚拟机
            public int availableProcessors() 获得CPU的线程数
            public long maxMemory() JVM能从系统中获取总内存大小(单位byte)
            public long totalMemory() JVM已经从系统中获取总内存大小(单位byte)
            public long freeMemory() JVM剩余内存大小(单位byte)
            public Process exec(string command) 运行cmd命令
        */

        //1.获取Runtime的对象
        //Runtime r1 =Runtime.getRuntime();

        //2.exit 停止虚拟机
        //Runtime.getRuntime().exit(0);
        //System.out.println("看看我执行了吗?");


        //3.获得CPU的线程数
        System.out.println(Runtime.getRuntime().availableProcessors());//8
        //4.总内存大小,单位byte字节
        System.out.println(Runtime.getRuntime().maxMemory() / 1024 / 1024);//4064
        //5.已经获取的总内存大小,单位byte字节
        System.out.println(Runtime.getRuntime().totalMemory() / 1024 / 1024);//254
        //6.剩余内存大小
        System.out.println(Runtime.getRuntime().freeMemory() / 1024 / 1024);//251

        //7.运行cmd命令
        //shutdown :关机
        //加上参数才能执行
        //-s :默认在1分钟之后关机
        //-s -t 指定时间 : 指定关机时间
        //-a :取消关机操作
        //-r: 关机并重启
        Runtime.getRuntime().exec("shutdown -s -t 3600");


    }
}

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Java