Math类
Java中的Math类是一个包含各种数学方法的内置类,它提供了一系列静态方法,用于执行各种数学计算。具体来说,Math类中的方法可以分为以下几类:
- 基本数学运算:包括加法、减法、乘法和除法等。
- 三角函数:如正弦(sin)、余弦(cos)和正切(tan)等。
- 指数和对数函数:包括指数(exp)和自然对数(log)等。
- 取整运算:如向上取整(ceil)、向下取整(floor)和四舍五入(round)等。
- 最大值和最小值:用于比较两个数值的大小,返回较大或较小的一个。
- 常量:如π(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包中的一个非常核心且广泛使用的类。它主要提供以下几方面的功能:
- 系统属性访问:System类允许开发者访问和操作各种系统属性,如操作系统的名称、版本、文件分隔符等。
- 输入输出操作:通过System类可以执行标准输入(System.in)、标准输出(System.out)和错误输出(System.err)的相关操作。
- 外部命令执行:使用System类可以在Java程序中执行外部命令和程序。
- 时间获取:System类提供了获取系统当前时间的方法,比如System.currentTimeMillis()用于获取当前时间以毫秒为单位的时间戳。
- 环境变量访问:允许读取和设置系统的环境变量。
- 安全相关方法:System类还提供了一些与安全相关的方法,如System.getSecurityManager()。
- 数组复制:System类中的arraycopy方法是用于快速复制数组的一部分的实用工具方法。
- 动态加载:System类还提供了动态加载文件和库的方法。
- 退出程序:System.exit方法可以用来终止当前运行的Java虚拟机。
- 内存信息:可以通过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类的详细介绍:
- 执行外部命令:通过Runtime类可以执行系统命令或外部程序,这通常通过exec方法实现。
- 内存管理:该类提供了总内存、空闲内存以及垃圾回收器的各种信息和方法,使得程序能够更好地管理系统资源。
- 动态加载类:可以使用Runtime来动态加载类文件到Java虚拟机中,从而在运行时扩展程序的功能。
- 获取Runtime实例:通常情况下,我们无法直接实例化Runtime对象,但可以通过其静态方法getRuntime()获取当前的Runtime实例。
- 系统属性访问:Runtime类还允许你访问和操作各种系统属性,例如内存设置、系统时间等。
- 版本信息访问:可以通过这个类获取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