Math、Runtime、System关键字

点 赞
0
热 度
1
评 论
0
  1. 首页
  2. Java开发合集
  3. Java基础语言进阶
  4. Math、Runtime、System关键字

一、Math

1. Math类提供的常见方法

  • 工具类特性:Math是代表数学的工具类,构造器私有化,所有方法都是静态方法

  • 绝对值方法:public static int abs(int a),返回参数绝对值,结果必为正数

  • 向上取整:public static double ceil(double a),如4.0001取整为5.0

  • 向下取整:public static double floor(double a),如4.999取整为4.0

  • 四舍五入:public static int round(float a),3.4999得3,3.5得4

  • 最值方法:max(int a,int b)取较大值,min(int a,int b)取较小值

  • 幂运算:pow(double a, double b)计算aba^bab,如2^3=8,3^2=9

  • 随机数:random()返回[0.0,1.0)范围的double值,不包含1.0

1)例题:取绝对值

  • 代码演示:

    • Math.abs(-12) → 12

    • Math.abs(-3.14) → 3.14

  • 注意点:整数和浮点数都有对应的重载方法

2)例题:随机数

  • 范围特性:随机数范围左闭右开,包含0.0但不包含1.0

  • 应用场景:常用于生成指定范围的随机数,需配合乘法运算使用

二、Runtime

1. Runtime类提供的常见方法

  • 运行时环境:代表程序所在的JVM运行环境,是单例类(一个JVM对应一个Runtime实例)

  • 获取实例:通过getRuntime()静态方法获取当前运行时对象

  • 虚拟机控制:exit(int status)可终止JVM,非零状态码表示异常终止(慎用)

  • 硬件信息:

    • availableProcessors()获取处理器核心数(如20线程CPU返回20)

    • totalMemory()返回JVM内存总量(字节单位,需转换为MB)

    • freeMemory()返回JVM可用内存量

1)例题:获取处理器数

  • 典型输出:如"处理器数量:20"对应20线程CPU

  • 单位换算:1MB=1024KB=1024×1024B

2)例题:获取内存总量

  • 输出示例:"Java虚拟机中的内存总量:508.0MB"

  • 计算过程:原始字节值除以1024^2得到MB单位

3)例题:获取内存的可用量

  • 输出示例:"Java虚拟机中的可用内存量:502.55MB"

  • 内存使用:总内存508MB - 可用502MB ≈ 已使用6MB

4)例题:QQ环境配置

  • 程序启动:exec(String command)可启动外部程序(需配置环境变量)

  • 执行示例:jre.exec("calc")启动计算器,jre.exec("QQ")启动QQ

5)例题:QQ进程对象

  • 进程控制:exec()返回Process对象,代表被启动的程序实例

  • 对象应用:可通过该对象控制程序生命周期(如关闭)

6)例题:QQ软件关闭

  • 关闭方法:process.destroy()可终止已启动的程序

  • 交互控制:可结合Scanner实现用户控制关闭

Scanner sc = new Scanner(System.in);
String command = sc.next();
if("y".equalsIgnoreCase(command)){
    process.destroy();
}

三、System

  • 类性质: System代表程序所在的系统,是一个工具类

  • 方法特点: 提供的方法都是静态方法,与系统操作相关

1. System类提供的常见方法

1)exit方法

  • 功能: 终止当前运行的Java虚拟机

  • 参数含义:

    • 0表示正常终止

    • 非零状态代码表示异常终止

  • 注意事项: 实际开发中禁止使用该方法终止JVM

2)currentTimeMillis方法

  • 返回值: long类型的时间毫秒值

  • 时间起点: 从1970年1月1日00:00:00开始计算

  • 单位换算: 1秒=1000毫秒

  • 应用场景: 常用于性能统计和时间计算

2. 例题:性能统计

  • 实现步骤:

    • 在代码执行前获取开始时间

    • 执行待测代码(如循环100万次)

    • 获取结束时间

    • 计算时间差并转换为秒

  • 计算公式: (结束时间-开始时间)/1000.0

  • 示例结果: 循环100万次耗时1.025秒

四、时间毫秒值

  • 起源背景:

    • 1970年1月1日被选为时间起点

    • 为纪念C语言的诞生(1970年1月1日)

    • 由Unix系统开发者肯·汤普逊确立

  • 技术意义:

    • 计算机系统时间的标准表示方式

    • 便于跨平台时间计算和比较

五、知识小结

知识点

核心内容

考试重点/易混淆点

难度系数

Math类

数学工具类,提供静态方法(如绝对值、取整、幂运算等),构造器私有化

Math.random()范围(0.0≤x<1.0)

四舍五入规则(3.4→3;3.5→4)

Runtime类

代表JVM运行时环境,单例模式设计,提供虚拟机控制方法

exit(0)exit(1)区别(状态码含义)

内存单位换算(字节→KB→MB)

System类

系统工具类,静态方法操作(如终止JVM、获取时间戳)

currentTimeMillis()基准时间(1970年1月1日)

性能统计应用(毫秒差值计算)

Process对象

通过Runtime.exec()启动外部程序(如QQ),可控制进程生命周期

destroy()方法风险(企业级禁用场景)

时间统计

利用System.currentTimeMillis()计算代码执行耗时

毫秒转秒公式(/1000.0)

循环性能测试案例(100万次≈1.025秒)


余乃云水散人,栖于数字之墟。性耽幽静,常以青简为田,墨痕为穗。晨起推窗,听松风煮茶;夜阑掩卷,伴竹影扫阶。此间筑小筑三椽,藏闲话若干:或遇史海遗珠,则录以素札;偶得诗瓢碎玉,便缀作清吟。往来皆烟霞客,谈笑有鸿儒踪。诸君若得暇,不妨暂驻云履,共品一盏烟岚,半卷春秋。

具有版权性

请您在转载、复制时注明本文 作者、链接及内容来源信息。 若涉及转载第三方内容,还需一同注明。

具有时效性

文章目录

欢迎来到南鸢宸羲的站点,为您导航全站动态

183 文章数
39 分类数
1 评论数
48标签数
最近评论
西北技术支持中心

西北技术支持中心


开始建站了😀