java Math、Random、System、Runtime类

本文介绍了Java中的Math类,包括其提供的常量、随机数生成方法以及数学运算函数,如平方根和幂运算。同时,讨论了Random类的使用,包括如何生成特定范围内的随机数。此外,还提到了静态导入的概念和找静态方法的顺序。最后,简述了Runtime类在系统管理中的作用,如内存和处理器信息的获取,以及如何执行操作系统命令。System类的功能也被提及,如标准输入输出流的管理及系统属性的获取。
摘要由CSDN通过智能技术生成

Math 类

  • Math 类是?

Math 是java中封装的一些数学方法。Math 不能被new 实例,构造方法为私有的。

类中方法都为静态的,使用时用类名加点方法名的方式调用

eg ; Math.random();

  • Math 中的常量

    •  //e  最接近自然底数e的双精度值
       public static final double E = 2.7182818284590452354;
      //圆周率   最接近圆周率的双精度值
       public static final double PI = 3.14159265358979323846;
      

常用的生成随机数方法:

  • Math.random() 方法 产生[0,1) 左闭右开的随机小数,返回值为double
  • Math.random() 方法 本质上是调用Random类的 nextDouble() 方法
  • 若产生一个 [a,b] 的随机数
  • Math.random()*(b-a+1)+a
  • eg : [2,99] (int)( Math.random*98+2)
  • 若产生一个[a,b) 的随机数
  • Math.random()*(b-a)+a
  • eg:[1,100) (int)( Math.random*99+1)
  • 若产生一个(a,b] 的随机数
  • Math.random()*(b-a)+(a+1)
  • eg:(1,100] (int)( Math.random*99+2)
  • 若产生一个(a,b) 的随机数
  • Math.random()*(b-a-1)+(a+1)
  • eg:(1,100) (int)( Math.random*98+2)

  • Math.max(int a, int b) 返回较大的那个数,有多个重载版本,也可比较其他基本数据类型

  • Math.min(int a, int b) 返回较小的那个数,有多个重载版本,也可比较其他基本数据类型

  • //平方根   返回double类型
    System.out.println(Math.sqrt(4));   //2.0
    //幂运算   返回double类型
    System.out.println(Math.pow(2,3));  //8.0
    

Random 类

  • Random 随机类 (伪随机)

    • 两种构造方法

    • Random(); 创建一个新的随机数生成器

    • Random(long seed); 使用单个 long 种子创建一个新随机数生成器

    如果用相同的种子创建两个Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列

    • 伪随机: Random 生成的是随机序列,而且一旦随机种子被确定了,那么随机序列就确定了,不具有真正意义上的随机
  • Random 使用

       ```java
    

//指定使用相同的随机种子,生成的随机序列相同
Random r1 =new Random(100);
Random r2 =new Random(100);
for (int i = 0; i < 10; i++) {
System.out.println(r1.nextInt(50));
System.out.println(r2.nextInt(50));
}
//结果
/*
15
15
0
0
24
24
38
38
41
41
16
16
36
36

*/

//一般我们使用无参构造,它会对随机种子进行改变,根据当前时间变动毫秒值

   Random random = new Random();
    for (int i = 0; i < 10; i++) {
        System.out.println(random.nextInt(100));
    }

     ```
  • nextInt(),无参数就生成随机生成器序列中的下一个伪随机序列
  • nextInt(int bound), 有参数,表示范围 [0,bound)
  • 静态导入

    当使用一个类里面的静态方法或者静态变量时,每次都需要写类名。如果不想写类名,想直接写方法名或者变量名,则可以考虑使用静态导入

    语法:import static 类名.*; //导入该类下的所有静态方法和常量

    例如:import static Math.*; //导入Math下的所有方法和变量(包括常量),则代码中可以直接使用方面和变量名,而不需要前缀Math。

    如:max(3,4);

  • 找静态方法顺序
  1. 本类找

Runtime 类

​ Runtime类代表java程序的运行时环境,每个程序都有一个与之关联的Runtime实例,应用程序通过该对象与运行时环境相连。

​ 应用程序不能自己创建Runtime对象,可以通过Runtime的静态方法getRuntime()获得Runtime对象。

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Test {
	public static void main(String[] args) throws Exception{	
			Runtime rt=Runtime.getRuntime(); //获取Runtime的实例
			System.out.println(rt.freeMemory());//返回Java虚拟机中的可用内存量   
			System.out.println(rt.availableProcessors()); //返回可用于Java虚拟机的处理器数量
			System.out.println(rt.totalMemory());//返回Java虚拟机中的内存总量。 
			System.out.println(rt.maxMemory()); //返回Java虚拟机将尝试使用的最大内存量。 
	}
}

2、Runtime可以直接启动一条进程来运行操作系统的命令

import java.io.IOException;

public class Test {
 public static void main(String[] args) throws IOException {
     Runtime rt=Runtime.getRuntime();
     //打开记事本
     rt.exec("notepad.exe");

 }
}

System 类

System类代表当前java程序的运行平台,程序不能自己创建System类的对象。

1、 System类提供了一些静态属性和方法,允许通过类名直接调用。

2、 System类提供了代表标准输入、标准输出、错误输出的类属性。

3、 System类提供了一些静态方法用于访问环境变量、系统属性的方法。

4、 System类还提供了加载文件和动态链接库的方法。

  • 输入流 System.in
  • 输出流 System.out
  • 错误输出流 System.err 输出为红色的字体

System 常用方法

1.public static void exit(intstatus) 退出当前虚拟机

2.public static long currentTimeMillis() 获得当前系统的毫秒值(与1970 年 1 月 1 日午夜之间的时间差)

3.public static Properties getProperties() 获得当前的所有系统属性

4.public static String getProperty(String key) 获得指定键的系统属性

5.public static void setIn(InputStream in) 输入重定向

6.public static void setOut(PrintStream out) 输出重定向

7.publicstatic void setErr(PrintStream err) 错误重定向

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值