首页 > 编程语言 >Java Math类、System类、Runtime类

Java Math类、System类、Runtime类

时间:2024-04-03 22:29:43浏览次数:27  
标签:Java System result 数组 Runtime 方法 Math

Math类

Java中的Math类是一个包含各种数学方法的内置类,它提供了一系列静态方法,用于执行各种数学计算。具体来说,Math类中的方法可以分为以下几类:

  1. 基本数学运算:包括加法、减法、乘法和除法等。
  2. 三角函数:如正弦(sin)、余弦(cos)和正切(tan)等。
  3. 指数和对数函数:包括指数(exp)和自然对数(log)等。
  4. 取整运算:如向上取整(ceil)、向下取整(floor)和四舍五入(round)等。
  5. 最大值和最小值:用于比较两个数值的大小,返回较大或较小的一个。
  6. 常量:如π(PI)和自然对数的底数(E)等。

此外,由于Math类中的方法都是静态的,因此无需创建对象就可以直接使用这些方法。例如,要计算一个数的平方根,可以直接调用Math.sqrt(number)方法。

以下是一些常见的Math类方法及其代码详解:

abs(x):返回参数x的绝对值。

int result = Math.abs(-5); // 结果为5

sqrt(x):返回参数x的平方根。

double result = Math.sqrt(9); // 结果为3.0

cbrt(x):返回参数x的立方根。

double result = Math.cbrt(8); // 结果为2.0

pow(a, b):返回a的b次幂。

double result = Math.pow(2, 3); // 结果为8.0

exp(x):返回e的x次幂,其中e是自然对数的底数。

double result = Math.exp(1); // 结果为2.718281828459045

log(x):返回参数x的自然对数。

double result = Math.log(2.718281828459045); // 结果为1.0

sin(x):返回参数x的正弦值。

double result = Math.sin(Math.PI / 2); // 结果为1.0

cos(x):返回参数x的余弦值。

double result = Math.cos(Math.PI); // 结果为-1.0

tan(x):返回参数x的正切值。

double result = Math.tan(Math.PI / 4); // 结果为1.0

ceil(x):返回大于或等于参数x的最小整数。

double result = Math.ceil(3.14); // 结果为4.0

floor(x):返回小于或等于参数x的最大整数。

double result = Math.floor(3.14); // 结果为3.0

round(x):返回最接近参数x的整数。

double result = Math.floor(3.14); // 结果为3.0

max(a, b):返回两个参数中的最大值。

int result = Math.max(5, 3); // 结果为5

min(a, b):返回两个参数中的最小值。

int result = Math.min(5, 3); // 结果为3

random():返回一个介于0(包含)和1(不包含)之间的随机浮点数。

double result = Math.random(); // 结果为一个随机数,例如0.123456789

System类

Java的System类是java.lang包中的一个非常核心且广泛使用的类。它主要提供以下几方面的功能:

  1. 系统属性访问:System类允许开发者访问和操作各种系统属性,如操作系统的名称、版本、文件分隔符等。
  2. 输入输出操作:通过System类可以执行标准输入(System.in)、标准输出(System.out)和错误输出(System.err)的相关操作。
  3. 外部命令执行:使用System类可以在Java程序中执行外部命令和程序。
  4. 时间获取:System类提供了获取系统当前时间的方法,比如System.currentTimeMillis()用于获取当前时间以毫秒为单位的时间戳。
  5. 环境变量访问:允许读取和设置系统的环境变量。
  6. 安全相关方法:System类还提供了一些与安全相关的方法,如System.getSecurityManager()。
  7. 数组复制:System类中的arraycopy方法是用于快速复制数组的一部分的实用工具方法。
  8. 动态加载:System类还提供了动态加载文件和库的方法。
  9. 退出程序:System.exit方法可以用来终止当前运行的Java虚拟机。
  10. 内存信息:可以通过System类获取JVM的内存信息,如总内存、可用内存等。

此外,由于System类的构造函数是private的,因此我们不能创建System类的实例,也就是说,我们不能实例化这个类。System类的所有方法都是静态的,这意味着我们不需要创建对象就可以直接调用这些方法。例如,打印输出通常是用System.out.println()来直接调用的。

Java的System类提供了许多常用的方法,下面介绍一些常用的方法及其代码示例:

获取系统属性:可以使用System.getProperty()方法来获取系统的各种属性。例如,要获取操作系统的名称,可以使用以下代码:

String osName = System.getProperty("os.name");
System.out.println("Operating System: " + osName);

执行外部命令:可以使用System.exec()方法来执行外部命令。例如,要执行一个ping命令,可以使用以下代码:

try {
    Process process = Runtime.getRuntime().exec("ping www.google.com");
    BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String line;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
    process.waitFor();
} catch (IOException | InterruptedException e) {
    e.printStackTrace();
}

这将执行ping命令并输出结果。

获取当前时间戳:可以使用System.currentTimeMillis()方法来获取当前时间的时间戳。例如,要获取当前时间戳,可以使用以下代码:

long currentTimeMillis = System.currentTimeMillis();
System.out.println("Current Time in Milliseconds: " + currentTimeMillis);

这将输出当前时间的时间戳。

读取输入流:可以使用System.in来读取标准输入流。例如,要读取用户输入的一行文本,可以使用以下代码:

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a line of text: ");
String input = scanner.nextLine();
System.out.println("You entered: " + input);

这将提示用户输入一行文本,并将其打印出来。

设置环境变量:可以使用System.setProperty()方法来设置环境变量。例如,要设置一个名为"myVar"的环境变量,可以使用以下代码:

System.setProperty("myVar", "Hello, World!");
String myVar = System.getProperty("myVar");
System.out.println("myVar: " + myVar);

这将设置一个名为"myVar"的环境变量,并将其值设置为"Hello, World!"。然后,使用System.getProperty()方法获取该环境变量的值,并将其打印出来。

复制数组:arraycopy方法用于高效地复制数组的一部分到另一个数组。

public class ArrayCopyExample {
    public static void main(String[] args) {
        // 创建源数组
        int[] sourceArray = {1, 2, 3, 4, 5};

        // 创建目标数组,长度与源数组相同
        int[] targetArray = new int[sourceArray.length];

        // 使用System.arraycopy方法复制数组
        System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);

        // 打印目标数组
        for (int i = 0; i < targetArray.length; i++) {
            System.out.print(targetArray[i] + " ");
        }
        //结果1 2 3 4 5

    }
}

在上述代码中,我们首先创建了一个名为sourceArray的源数组,然后创建了一个与源数组长度相同的目标数组targetArray。接下来,我们使用System.arraycopy方法将源数组的内容复制到目标数组中。

System.arraycopy方法的参数如下:

  • sourceArray:源数组,即要复制的数组。
  • 0:源数组中的起始位置,表示从哪个索引开始复制。
  • targetArray:目标数组,即要将数据复制到的数组。
  • 0:目标数组中的起始位置,表示从哪个索引开始粘贴数据。
  • sourceArray.length:要复制的元素数量。

最后,我们通过遍历目标数组并打印每个元素来验证复制是否成功。

 终止Java虚拟机:exit方法用于终止当前运行的Java虚拟机。该方法接受一个整数参数,表示退出状态码。

以下是使用System.exit方法的代码示例:

public class ExitExample {
    public static void main(String[] args) {
        System.out.println("程序开始执行");
        
        // 调用System.exit方法终止程序
        System.exit(0);
        
        System.out.println("程序结束执行"); // 这行代码不会被执行
    }
}

在上述示例中,当调用System.exit(0)后,程序立即终止,后续的输出语句不会被执行。

 Runtime类

Java Runtime类是一个关键的系统类,它提供了对当前Java虚拟机实例的访问和控制能力。以下是一些Runtime类的详细介绍:

  1. 执行外部命令:通过Runtime类可以执行系统命令或外部程序,这通常通过exec方法实现。
  2. 内存管理:该类提供了总内存、空闲内存以及垃圾回收器的各种信息和方法,使得程序能够更好地管理系统资源。
  3. 动态加载类:可以使用Runtime来动态加载类文件到Java虚拟机中,从而在运行时扩展程序的功能。
  4. 获取Runtime实例:通常情况下,我们无法直接实例化Runtime对象,但可以通过其静态方法getRuntime()获取当前的Runtime实例。
  5. 系统属性访问:Runtime类还允许你访问和操作各种系统属性,例如内存设置、系统时间等。
  6. 版本信息访问:可以通过这个类获取Java运行时环境的版本信息。

以下是一些常用的Runtime类方法及其代码示例:

获取运行时环境:可以使用getRuntime()方法获取当前的Runtime实例。

Runtime runtime = Runtime.getRuntime();

执行外部命令:可以使用exec()方法执行系统命令或外部程序。

try {
    Process process = runtime.exec("notepad.exe"); // 打开记事本
} catch (IOException e) {
    e.printStackTrace();
}

获取内存信息:可以使用maxMemory()、totalMemory()和freeMemory()方法获取内存信息。

long maxMemory = runtime.maxMemory(); // 最大可用内存
long totalMemory = runtime.totalMemory(); // 已分配内存
long freeMemory = runtime.freeMemory(); // 空闲内存

垃圾回收:可以使用gc()方法强制进行垃圾回收。

runtime.gc(); // 强制进行垃圾回收

获取系统属性:可以使用getProperty()方法获取系统属性。

String osName = System.getProperty("os.name"); // 操作系统名称
String javaVersion = System.getProperty("java.version"); // Java版本号

获取运行时环境版本信息:可以使用version()方法获取Java运行时环境的版本信息。

String version = System.getProperty("java.version"); // Java版本号

需要注意的是,虽然Runtime类提供了许多强大的功能,但使用这些功能时应当小心谨慎,因为它们可能会对系统稳定性和安全性造成影响。

 

标签:Java,System,result,数组,Runtime,方法,Math
From: https://blog.csdn.net/weixin_74521994/article/details/137357848

相关文章

  • Java最短路径算法知识点(含面试大厂题和源码)
    最短路径算法是计算机科学和图论中的核心问题之一,它旨在找到从一个顶点到另一个顶点或在所有顶点之间的最短路径。这个问题在多种实际应用中都非常重要,如网络路由、交通规划、社交网络分析等。以下是一些与最短路径算法相关的知识点:Dijkstra算法:由荷兰计算机科学家艾兹......
  • Java归并排序知识点(含面试大厂题和源码)
    归并排序是一种有效的排序算法,采用分治法(DivideandConquer)策略。它将数组分成两半,对每一半递归地进行排序,然后将两个有序的半部分合并成一个整体的有序数组。归并排序在最坏情况、平均情况和最好情况下都保持(O(n\logn))的时间复杂度,是一种稳定的排序算法。由于其分而治......
  • Java快速排序知识点(含面试大厂题含源码)
    快速排序是一种高效的排序算法,由C.A.R.Hoare在1960年提出。它的基本思想是分而治之(DivideandConquer)。快速排序的关键在于选取一个“基准值”(pivot),然后将数组分为两个子数组:一个包含所有小于基准值的元素,另一个包含所有大于基准值的元素。这个过程称为“分区”(partitio......
  • java八股——linux常见命令
    上一篇传送门:点我说说你知道的linux命令?1.ls:列出目录内容。示例:ls-l(以长格式显示目录内容,可以缩写成ll),ls-a(显示包括隐藏文件在内的所有文件)。2.cd:改变当前工作目录。示例:cd/home/user(切换到/home/user目录),cd…(切换到上一级目录)。3.pwd:显示当前工作目录的路径。4......
  • Java后端新手的第一次面试复盘
    昨天经历了第一次Java后端实习生面试,在无数次的简历投递后,很难得的一次面试机会,收获很多,也深刻感受到自己能力的不足(还需要继续沉淀半个学期),在此记录下收获和感悟,如有错误,欢迎指正!1.面试流程闲聊(5分钟):自我介绍+询问背景动机技术问答(45分钟):包括Java基础、数据库技......
  • java毕业设计二手书籍拍卖小程序[附源码]
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着数字化时代的深入发展,人们对于信息的获取和物品的交易方式正经历着翻天覆地的变化。特别是在教育领域,电子书的普及使得纸质书籍逐渐被边缘化,这并不意......
  • Java Web实验四:Servlet应用开发
    实验四  Servlet应用开发一、实验目的1.学会使用Servlet获取表单数据;2.学会使用Servlet的跳转方法实现重定向;3.学会配置和获取应用初始化参数的方法。二、实验内容1.编写一个登录页面,根据登录验证结果,重定向到登录成功页面和登录失败页面;2.在Servlet中获取应用......
  • JavaWeb-01记录
    JWT令牌JSONWebToken作用:以json格式在各方之间安全传递信息,是数字签名的。格式:标头Header.有效载荷Payload.签名Signature前两部分用Base64编码,可以被前端翻译并理解。第三部分使用编码后的前两部分,加上一个密钥,用头部声明的加密算法进行签名,保证令牌没有被篡改。swagger生......
  • 关于openEuler系统的基本环境配置(包括nginx,mysql5.7和java1.8)
    关于openEuler系统的基本环境配置(包括nginx,mysql5.7和java1.8)观前BB:openEuler虽然是国产系统,但是本质还是centos的套壳系统,你可以通过(uname-a)命令得以观察出,而且系统更类似于centos8(这个还有待确认),这就导致了安装环境的时候经常会出现奇奇怪怪的错误(比如yum找不到源什么的),本......
  • Java的Scanner类、Random类、ArrayList类、String类的基本定义
    学习目标:学习Java中Scanner类、Random类、ArrayList类、String类基本定义学习内容:Scanner类Scanner功能简介用于获取外界输入,例如从键盘录入字符、数字等等…Scanner类使用前需要先导入Scanner包importjava.util.Scanner;导包后创建Scanner类对象,接上.使......