Java基础之Math和Random类知识总结

 更新时间:2021年05月18日 09:55:13   作者:qq_45671732  
今天带大家来学习java的Math和Random类,文中有非常详细的代码示例及介绍,对正在学习java基础的小伙伴们很有帮助哟,需要的朋友可以参考下

java的Math类

在这里插入图片描述

java中的java.lang.Math类可以直接使用,不需要导包,在JDK的API 中看到Math类被final修饰着,那么说明了这个Math类不能被继承,构造器私有化,不能创建Math类的对象,也就是说

public static void main(String []args){
	Math m = new Math();
}

这种写法是错误的

在这里插入图片描述

Math内部的所有的属性和方法都被static修饰了,这说明在调用的时候直接使用类名.的方式直接调用,无需创建对象。
接下来介绍Math类中的几个常用的方法:

方法 说明 返回值类型
random() 返回带正号的双精度值,大于或等于0.0,小于1.0。 static double
abs() 取数的绝对值,可以是int long double float int / long / double / float
ceil() 向上取值 返回一个double类型
floor() 向下取值 返回一个double类型
round() 四舍五入 返回一个long或者是int类型的值
max()和min() 返回最大值和最小值 返回的值可以是double、float、int、long类型的值
package Test;

public class Test06 {
    public static void main(String[] args) {
        //常用属性:
        System.out.println(Math.PI);
        //常用的方法:
        System.out.println("随机数:" + Math.random());//[0.0,1.0)
        System.out.println("绝对值" + Math.abs(-80));
        System.out.println("向上取值" + Math.ceil(9.1));
        System.out.println("向下取值" + Math.floor(9.9));
        System.out.println("四舍五入" + Math.round(3.5));
        System.out.println("取大的那个值" + Math.max(3, 6));
        System.out.println("取小的那个值" + Math.min(3, 6));
    }
}

同样Math类可以使用静态导入的方式,直接导入Math类的所有方法和属性

package Test;
//静态导入

import static java.lang.Math.*;

public class Test07 {
    public static void main(String[] args) {
        //常用属性:
        System.out.println(PI);
        //常用的方法:
        System.out.println("随机数:" + random());//[0.0,1.0)
        System.out.println("绝对值" + abs(-80));
        System.out.println("向上取值" + ceil(9.1));
        System.out.println("向下取值" + floor(9.9));
        System.out.println("四舍五入" + round(3.5));
        System.out.println("取大的那个值" + max(3, 6));
        System.out.println("取小的那个值" + min(3, 6));
    }
    //如果和Math中的方法重复了,程序会优先选择本类的方法,这就是就近原则
    public static int random(){
        return 100;
    }
}

java的Random类

在这里插入图片描述

Random类在java.util.Random中

Random类的常用方法:

方法 说明
nextInt() 返回此随机数生成器序列中的下一个伪随机、均匀分布的int值。
nextDouble() 返回此随机数生成器序列中的下一个伪随机、均匀分布的介于0.0和1.0之间的双精度值。
package Test;

import java.util.Random;

public class Test08 {
    public static void main(String[] args) {
        System.out.println("随机数" + Math.random());
        //学习Random类
        //利用带参数的构造器创建对象
        Random r1 = new Random(System.currentTimeMillis());
        int i = r1.nextInt();
        System.out.println(i);
        //利用空参构造器创建对象
        Random r2 = new Random();//表面是在调用无参构造器,实际上底层还是调用了带参构造器
        System.out.println(r2.nextInt(10));
        System.out.println(r2.nextDouble());
    }
}

到此这篇关于Java基础之Math和Random类知识总结的文章就介绍到这了,更多相关java的Math和Random类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java线程的全方位详解

    Java线程的全方位详解

    Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务,多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销
    2021-10-10
  • mybatis @InsertProvider报错问题及解决

    mybatis @InsertProvider报错问题及解决

    这篇文章主要介绍了mybatis @InsertProvider报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Java消息队列中的Kafka如何保证幂等性

    Java消息队列中的Kafka如何保证幂等性

    这篇文章主要介绍了Java消息队列中的Kafka如何保证幂等性,Kafka是一种消息队列,主要用来处理大量数据状态下的消息队列,一般用来做日志的处理,既然是消息队列,那么Kafka也就拥有消息队列的相应的特性了,需要的朋友可以参考下
    2023-07-07
  • jmeter+ant+jenkins自动化测试环境配置搭建过程

    jmeter+ant+jenkins自动化测试环境配置搭建过程

    在搭建jmeter+ant+jenkins环境有些前提条件,那就是要先配置好java环境、安装好jenkins以及配置好jmeter,这样才能省去很多的事情,对jmeter+ant+jenkins自动化测试环境配置搭建过程感兴趣的朋友一起看看吧
    2021-12-12
  • 引入mybatis-plus报 Invalid bound statement错误问题的解决方法

    引入mybatis-plus报 Invalid bound statement错误问题的解决方法

    这篇文章主要介绍了引入mybatis-plus报 Invalid bound statement错误问题的解决方法,需要的朋友可以参考下
    2020-05-05
  • SpringMVC 通过commons-fileupload实现文件上传功能

    SpringMVC 通过commons-fileupload实现文件上传功能

    这篇文章主要介绍了SpringMVC 通过commons-fileupload实现文件上传,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Java中的volatile关键字解析

    Java中的volatile关键字解析

    这篇文章主要介绍了Java中的volatile关键字解析,Java内存模型规定了所有的变量都存储在主内存中,每个线程都有自己的工作内存,线程的工作内存保存了该线程使用到的变量的是主内存副本的拷贝,需要的朋友可以参考下
    2023-11-11
  • SpringBoot与spring security的结合的示例

    SpringBoot与spring security的结合的示例

    这篇文章主要介绍了SpringBoot与spring security的结合的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • ReentrantLock实现原理详解

    ReentrantLock实现原理详解

    本文将对ReentrantLock实现原理进行详细的介绍,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • java 打造阻塞式线程池的实例详解

    java 打造阻塞式线程池的实例详解

    这篇文章主要介绍了java 打造阻塞式线程池的实例详解的相关资料,这里提供实例帮助大家,理解这部分知识,需要的朋友可以参考下
    2017-07-07

最新评论