JavaSE——常用API进阶二(1/8)-Math、System、Runtime(它们提供的常见方法以及具体使用)

简介: JavaSE——常用API进阶二(1/8)-Math、System、Runtime(它们提供的常见方法以及具体使用)

Math

  • 代表数学,是一个工具类,里面提供的都是对数据进行操作的一些静态方法。

Math类提供的常见方法 图片.png

具体用法

1.取绝对值

public class Test {
    public static void main(String[] args) {
        System.out.println(Math.abs(-12));  //12
        System.out.println(Math.abs(123));  //123
        System.out.println(Math.abs(-3.14));  //3.14
    }
}


2.向上取整&向下取整

public class Test {
    public static void main(String[] args) {
        //向上取整
        System.out.println(Math.ceil(4.00001));  //5.0
        System.out.println(Math.ceil(4.0));  //4.0
        
        //向下取整
        System.out.println(Math.floor(4.99999));  //4.0
        System.out.println(Math.floor(4.0));  //4.0
 
    }
}


3.四舍五入

public class Test {
    public static void main(String[] args) {
        System.out.println(Math.round(3.4999));  //3
        System.out.println(Math.round(3.50001));  //4
    }
}


4.取较大值&取较小值

public class Test {
    public static void main(String[] args) {
        System.out.println(Math.max(10, 20));  //20
        System.out.println(Math.min(10, 20));  //10
    }
}


5.取次方&取随机数

public class Test {
    public static void main(String[] args) {
        //取次方
        System.out.println(Math.pow(2, 3));  //2的3次方  8.0
        System.out.println(Math.pow(3, 2));  //3的2次方  9.0
 
        //取随机数
        System.out.println(Math.random()); //取[ 0.0, 1.0 )    (包前不包后)
    }
}


Ctrl + 鼠标左键查看random的源码:



System

  • System代表程序所在的系统,也是一个工具类。

System类提供的常见方法

方法名 说明
public static void exit(int status) 终止当前运行的Java虚拟机。
publicstaticlong currentTimeMillis() 返回当前系统的时间毫秒值形式

具体用法


public class Test {
    public static void main(String[] args) {
 
        //1.终止当前运行的Java虚拟机
        //System.exit(0); //人为地终止虚拟机(不要运行使用)
 
        //2.获取当前系统的时间
        long time = System.currentTimeMillis();
        System.out.println(time);  //是以毫秒为单位输出出来的
    }
 
}

运行结果:

一般可用于判断一段程序的执行时间或者简单评估其性能:

public class Test {
    public static void main(String[] args) {
 
        long time1 = System.currentTimeMillis();
        int a = 0;
        for (int i = 0; i < 10000000; i++) {
            a += a;
        }
        long time2 = System.currentTimeMillis();
        System.out.println("执行时间:" + (time2 - time1) / 1000.0 + "s"); //换算成秒的单位
    }
 
}


时间毫秒值

  • 指的是从1970年1月1日00:00:00走到此刻的总的毫秒数,应该是很大的。1s=1000ms。

为什么选择“1970年1月1日00:00:00”作为时间的起点?

 1969年8月,贝尔实验室的程序员肯汤普逊利用妻儿离开一个月的机会,开始着手创造一个全新的革命性的操作系统,他使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本。随后,汤普逊和同事丹尼斯里奇改进了B语言,开发出了C语言,重写了UNIX。


1970年1月1日算C语言的生日

Runtime

  • 代表程序所在的运行环境。
  • Runtime是一个单例类

Runtime类提供的常见方法 图片.png

具体用法

1.返回与当前Java应用程序关联的运行时对象

public class Test {
    public static void main(String[] args) {
        //1.返回与当前Java应用程序关联的运行时对象
        Runtime r = Runtime.getRuntime();
        System.out.println(r.toString());
    }
}


2.终止当前运行的虚拟机

3.获取虚拟机能够使用的处理器数。

4.返回Java虚拟机中的内存总量。

5.返回Java虚拟机中的可用内存量

public class Test {
    public static void main(String[] args) {
        //1.返回与当前Java应用程序关联的运行时对象
        Runtime r = Runtime.getRuntime();
 
        //2.终止当前运行的虚拟机,该参数用作状态代码;按照惯例,非零状态代码表示异常终止。
        //r.exit(0);   同样不能运行它
 
        //3、获取虚拟机能够使用的处理器数。
        System.out.println("3.虚拟机能够使用的处理器数:" + r.availableProcessors());
 
        //4.返回Java虚拟机中的内存总量
        System.out.println("4.Java虚拟机中的内存总量:" + r.totalMemory()/1024.0/1024.0 + " MB"); //转换成MB
 
        //5.返回Java虚拟机中的可用内存量
        System.out.println("5.Java虚拟机中的可用内存量" + r.freeMemory()/1024.0/1024.0 + " MB");
    }
 
}

运行结果:


6.启动某个程序,并返回代表该程序的对象。


public class Test {
    public static void main(String[] args) {
        Runtime r = Runtime.getRuntime();
 
        //6.启动某个程序,并返回代表该程序的对象。
        r.exec("F:\\Minecraft\\Minecraft\\HMCL-3.5.5.exe");
        
        //如果配置了环境变量,那么就可以直接使用
        Process p = r.exec("QQ");
        Thread.sleep(5000); //让程序在这里暂停5s后再继续
        p.destroy(); //销毁,关闭程序
    }
}

END



目录
相关文章
|
1月前
|
Java API
JavaSE——常用API进阶二(6/8)-ZoneId、ZoneDateTime、Instant(常见方法、用法示例)
JavaSE——常用API进阶二(6/8)-ZoneId、ZoneDateTime、Instant(常见方法、用法示例)
19 1
|
4天前
|
XML 前端开发 JavaScript
JavaScript进阶 - AJAX请求与Fetch API
【7月更文挑战第3天】前端开发中的异步基石:AJAX与Fetch。AJAX,使用XMLHttpRequest,处理跨域、回调地狱和错误处理。Fetch,基于Promise,简化请求,但需注意默认无跨域头和HTTP错误处理。两者各有优劣,理解其问题与解决策略,能提升前端应用的性能和用户体验。
|
1天前
|
JavaScript API
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
8 1
|
13天前
|
存储 缓存 Java
JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解
JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解
17 2
|
24天前
|
Java API
API:object当中的各种方法刨析(今日份:equals toString)
API:object当中的各种方法刨析(今日份:equals toString)
|
2天前
|
缓存 JSON 算法
http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存
http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存
4 0
|
3天前
|
API
Vue2和Vue3的区别,OptionsAPI与CompositionAPI的区别,Vue2所有的数据,都写在data和method方法中,setup是一个全新的配置项,Vue2是选项式API的写法
Vue2和Vue3的区别,OptionsAPI与CompositionAPI的区别,Vue2所有的数据,都写在data和method方法中,setup是一个全新的配置项,Vue2是选项式API的写法
|
1月前
|
存储 Java API
JavaSE——常用API进阶二(8/8)-Arrays、Comparable、Comparator(Arrays类提供的的常见方法、用法示例)
JavaSE——常用API进阶二(8/8)-Arrays、Comparable、Comparator(Arrays类提供的的常见方法、用法示例)
23 2
|
1月前
|
安全 Java API
JavaSE——常用API进阶二(7/8)-DateTimeFormatter、Period、Duration(常见方法、用法示例)
JavaSE——常用API进阶二(7/8)-DateTimeFormatter、Period、Duration(常见方法、用法示例)
35 2
|
1月前
|
安全 Java API
JavaSE——常用API进阶二(5/8)-JDK 8新增的时间API,LocalDate、LocalTime、LocalDateTime
JavaSE——常用API进阶二(5/8)-JDK 8新增的时间API,LocalDate、LocalTime、LocalDateTime
21 2