java Math、Random、System、Runtime类

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) 错误重定向

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值