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

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类内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java基础之颜色工具类(超详细注释)

    颜色工具类(超详细注释) 设置属性值自动格式化rgb值和十六进制颜色值. import java.util.HashMap; import java.util.Map; public class Color{ private final String[] hex_letters = {"0", "1", "2", "3", "4", "5", "6", "7

  • 详细总结Java基础类和包装类

    一.简介 当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的包装器类了. 基本数据类型存放在栈中,效率更高 每个基本类型在java.lang包中都有一个相应的包装类,new出来的对象存在于堆中(通过栈中的引用来使用这些对象),是一个对象,因此具有更多的诸如"转换"的方法 例子: 1.int转Integer int i = 0; Integer ii = new Integer(i)

  • Java基础之自定义类加载器

    一.类加载器关系 自定义类加载器 创建一个类继承ClassLoader类,同时重写findClass方法,用于判断当前类的class文件是否已被加载 二.基于本地class文件的自定义类加载器 本地class文件路径 自定义类加载器: //创建自定义加载器类继承ClassLoader类 public class MyClassLoader extends ClassLoader{ // 包路径 private String Path; // 构造方法,用于初始化Path属性 public MyC

  • java内部类的定义与分类示例详解

    内部类 基本介绍 一个类的内部又完整的嵌套了另一个类结构.被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class).是我们类的第五大成员,内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系 基本语法: class Outer{ class Inner{ } } 内部类的分类: 1.定义在外部类局部位置上(比如方法内): 1).局部内那类(有类名) 2).匿名内部类(没有类名,重点); 定义在外部类的成员位置上: 1)成员内部类(没

  • Java基础之Object类详解

    object类的介绍 object是所有类的直接父类或者是间接父类,为什么这么说呢? 可以查询java8的API帮助文档: 可见在这样的一个类树中,所有的类的根还是Object类 在IDEA中新建一个类,系统会默认继承Object类 public class Pet extends Object{ } 那么Dog继承了Pet类的属性和行为方法,还会继承Object类的属性和行为方法了吗?这一点是肯定的,Pet类作为Object类的子类,Dog类作为Pet类的子类,所以说Object是Dog类的间

  • Java数据类型之细讲char类型与编码关系

    一.开头 Java是一种强类型的语言,这意味着必须为每一个变量声明一种类型 Java中一共有8种基本数据类型(整形有4种,浮点型有2种,字符型1种,还有一种布尔类型) 由于Java程序必须保证在所有机器上都能得到相同的运行结果,所以各种数据类型的取值范围必须是固定的 二.整形 整形共有4种 byte:一个字节 short:2个字节 int:4个字节(刚好超过二十亿) long int:8个字节 这里要注意的一些地方是 长整形数值有一个后缀L或者l 十六进制数值有一个前缀0x或者0X 八进制有一个

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

    java的Math类 java中的java.lang.Math类可以直接使用,不需要导包,在JDK的API 中看到Math类被final修饰着,那么说明了这个Math类不能被继承,构造器私有化,不能创建Math类的对象,也就是说 public static void main(String []args){ Math m = new Math(); } 这种写法是错误的 Math内部的所有的属性和方法都被static修饰了,这说明在调用的时候直接使用类名.的方式直接调用,无需创建对象. 接下来介

  • Java类初始化执行流程解析

    测试代码: package com.test.ClassLaoderTest; public class test1 { public static String s_variable = "静态变量"; public String init_variable = "公开的变量"; private String p_variable = "私有的变量"; //静态代码块 static { System.out.println(s_variable

  • Java Math类、Random类、System类及BigDecimal类用法示例

    本文实例讲述了Java Math类.Random类.System类及BigDecimal类用法.分享给大家供大家参考,具体如下: Math类 Math的方法 package cn.itcast_01; /* * Math:用于数学运算的类. * 成员变量: * public static final double PI * public static final double E * 成员方法: * public static int abs(int a):绝对值 * public static

  • 一文秒懂通过JavaCSV类库读写CSV文件的技巧

    一.背景 小哈公司最近准备开发一套新的平台,具体什么平台,因为涉密,这里就不透露了.平台在最终的的技术选型中,其中主要依赖的技术栈是 Apache Flink, 一款 Apache 基金会开源的流处理框架,平台的核心业务都会交给 Flink 去处理,其中包括离线批量任务计算,以及实时任务计算. PS: 后面小哈也会分享一些 Flink 相关的文章,正在考虑要不要立个 Flag, 出一套 Flink 的入门教程系列文章,主要怕自己太懒了,泼出去的水,收不回来,那就尴尬了~

  • java算法之静态内部类实现雪花算法

    概述 在生成表主键ID时,我们可以考虑主键自增 或者 UUID,但它们都有很明显的缺点 主键自增:1.自增ID容易被爬虫遍历数据.2.分表分库会有ID冲突. UUID: 1.太长,并且有索引碎片,索引多占用空间的问题 2.无序. 雪花算法就很适合在分布式场景下生成唯一ID,它既可以保证唯一又可以排序.为了提高生产雪花ID的效率, 在这里面数据的运算都采用的是位运算 一.概念 1.原理 SnowFlake算法生成ID的结果是一个64bit大小的整数,它的结构如下图: 算法描述: 1bit 因为二进

  • Java并发编程之LockSupport类详解

    一.LockSupport类的属性 private static final sun.misc.Unsafe UNSAFE; // 表示内存偏移地址 private static final long parkBlockerOffset; // 表示内存偏移地址 private static final long SEED; // 表示内存偏移地址 private static final long PROBE; // 表示内存偏移地址 private static final long SEC

随机推荐