常用类:Math类、Random类、System类( currentTimeMillis获取当前时间的毫秒值)、BigDecimal类

Math类概述和方法使用

A:Math类概述
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
B: 成员变量
public static final double E : 自然底数
public static final double PI: 圆周率
C:成员方法
public static int abs(int a) 取绝对值
public static double ceil(double a) 向上取整
public static double floor(double a) 向下取整
public static int max(int a,int b) 获取最大值
public static int min(int a, int b) 获取最小值
public static double pow(double a,double b) 获取a的b次幂
public static double random() 获取随机数 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
public static int round(float a) 四舍五入
public static double sqrt(double a)获取正平方根

案例一:

public class MathDemo {
    public static void main(String[] args) {
        double random = Math.random();
        //public static int abs ( int a)取绝对值
        //public static double ceil ( double a)向上取整
        //public static double floor ( double a)向下取整
        //public static int max ( int a, int b)获取最大值
        //public static int min ( int a, int b)获取最小值
        //public static double pow ( double a, double b)获取a的b次幂
        //public static double random () 获取随机数 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
        //public static int round ( float a)四舍五入
        //public static double sqrt ( double a)获取正平方根
        System.out.println(Math.abs(-1));
        System.out.println(Math.ceil(3.15));
        System.out.println(Math.floor(3.13));
        System.out.println(Math.max(Math.max(3, 10), 10));
        System.out.println(Math.pow(2, 2));
        System.out.println(Math.round(3.44));


        System.out.println(Math.sqrt(4));


        System.out.println(Math.pow(4, 1.0 / 3.0));
    }
}

Random类的概述和方法使用

A:Random类的概述
此类用于产生随机数如果用相同的种子创建两个 Random 实例,
则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
B:构造方法
public Random() 没有给定种子,使用的是默认的(当前系统的毫秒值)
public Random(long seed) 给定一个long类型的种子,给定以后每一次生成的随机数是相同的
C:成员方法
public int nextInt()//没有参数 表示的随机数范围 是int类型的范围
public int nextInt(int n)//可以指定一个随机数范围
void nextBytes(byte[] bytes) 生成随机字节并将其置于用户提供的空的 byte 数组中。

案例一:

import java.util.Arrays;
import java.util.Random;
public class RandomDemo {
    public static void main(String[] args) {
       // Random 可以生成一些随机数据
       // Random()
       // 创建一个新的随机数生成器。
        Random random = new Random();
        //int nextInt ()
        //返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
        //int nextInt ( int n)
        //返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。

        byte[] bytes = new byte[10];
        // void nextBytes ( byte[] bytes)
        // 生成随机字节并将其置于用户提供的 byte 数组中。

        random.nextBytes(bytes);

        System.out.println(Arrays.toString(bytes));

        //for (int i = 0; i < 200; i++) {
        //    //int num = random.nextInt();//生成随机整数,不给范围,他用的是int的范围
        //    int num = random.nextInt(100)+1; //0----99
        //    //double num = random.nextDouble();
        //   // boolean b = random.nextBoolean();
        //
        //
        //
        //    System.out.println(num);
        //}


    }
}

案例二:

import java.util.Random;
public class RandomDemo2 {
    public static void main(String[] args) {
        //Random( long seed)
        //使用单个 long 种子创建一个新的随机数生成器。
        Random random = new Random(1L);
        for (int i = 0; i < 10; i++) {
            int i1 = random.nextInt(10);
            System.out.println(i1);
        }
    }
}

System类的概述和方法使用

A:System类的概述
System 类包含一些有用的类字段和方法。它不能被实例化。
B:成员方法
public static void gc()//调用垃圾回收器
public static void exit(int status)//退出java虚拟机 0 为正常退出 非0为 异常退出
public static long currentTimeMillis()//获取当前时间的毫秒值

案例一:

public class MyTest {
    public static void main(String[] args) {

        System.out.println("asdfffffffffffffff");
        System.out.println("asdfffffffffffffff");
        System.out.println("asdfffffffffffffff");
        System.out.println("asdfffffffffffffff");
         System.exit(0);//0 正常退出虚拟机 非0 强制退出虚拟机
        System.out.println("asdfffffffffffffff");
        System.out.println("asdfffffffffffffff1111111111111111111");
        System.out.println("asdfffffffffffffff");
        System.out.println("asdfffffffffffffff");
        System.out.println("asdfffffffffffffff");
        System.out.println("asdfffffffffffffff");
        System.out.println("asdfffffffffffffff");
    }
}

案例二:

public class MyTest2 {
    public static void main(String[] args) {
        Object obj = new Object();

        obj = null;

        //
        //运行垃圾回收器。
        //调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。


        System.gc();//催促垃圾回收器,去回收垃圾


    }
}

案例三:

import java.io.InputStream;
import java.io.PrintStream;
import java.util.Scanner;
public class SystemDemo {
    public static void main(String[] args) {
       // System
       // System 类包含一些有用的类字段和方法。它不能被实例化。
        InputStream in = System.in;
        //in
        //public static final InputStream in“标准”输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入
        //out
        //public static final PrintStream out“标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器

        Scanner sc = new Scanner(in);


        PrintStream out = System.out;
        out.println(100);

        //对于简单独立的 Java 应用程序,编写一行输出数据的典型方式是:
        //
        //System.out.println(data)
        System.out.println();

        System.err.println("这是一个错误的输出");



    }
}

计算运算耗时

案例:

public class MyTest3 {
    public static void main(String[] args) {
        // 1s=1000ms
       // 1 s = 1000 ms
        //计算机元年 1970 01-01 00:00:00----------到现在间隔的毫秒值
        long start = System.currentTimeMillis(); //获取当前系统时间的毫秒值

        for (int i = 0; i < 100000; i++) {
            System.out.println("a");
        }
        long end = System.currentTimeMillis(); //获取当前系统时间的毫秒值


        System.out.println("耗时 "+(end-start)+" 毫秒");

    }
}

BigDecimal类的概述和方法使用

A:BigDecimal的概述
由于在运算的时候,float类型和double很容易丢失精度,演示案例。
所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal

不可变的、任意精度的有符号十进制数。

B:构造方法
public BigDecimal(String val)
C:成员方法
public BigDecimal add(BigDecimal augend)//加
public BigDecimal subtract(BigDecimal subtrahend)//减
public BigDecimal multiply(BigDecimal multiplicand)//乘
public BigDecimal divide(BigDecimal divisor)//除法
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)//scale 小数点后面保留几位
// roundingMode 取舍模式 比如四舍五入

案例一:

import java.math.BigDecimal;
public class MyTest {
    public static void main(String[] args) {
        //double a=10;
        //double b=3;
        //System.out.println(a/b);
        //如果你对精度要求特别高,那么Java也会有相应的类提供
    //    B:
    //    构造方法
	//public BigDecimal(String val)

        //
        //public BigDecimal add (BigDecimal augend)//加
        //public BigDecimal subtract (BigDecimal subtrahend)//减
        //public BigDecimal multiply (BigDecimal multiplicand)//乘
        //public BigDecimal divide (BigDecimal divisor)//除法
        //public BigDecimal divide (BigDecimal divisor,int scale, int roundingMode)//scale 小数点后面保留几位
         roundingMode 取舍模式 比如四舍五入

        BigDecimal a = new BigDecimal(10.00000000000002);
        BigDecimal b = new BigDecimal(10.00000000000002888888888888888888888888888);
        BigDecimal add = a.add(b);
        System.out.println(add);
        BigDecimal subtract = a.subtract(b);
        System.out.println(subtract);

        BigDecimal multiply = a.multiply(b);
        System.out.println(multiply);


    }
}

案例二:

import java.math.BigDecimal;

public class MyTest2 {
    public static void main(String[] args) {
        BigDecimal a = new BigDecimal(10);
        BigDecimal b = new BigDecimal(3);
        // BigDecimal divide = a.divide(b); 能整除
        //不能整除
        //ROUND_CEILING
        //接近正无穷大的舍入模式。

        //public BigDecimal divide (BigDecimal divisor,int scale, int roundingMode)//scale 小数点后面保留几位
         roundingMode 取舍模式 比如四舍五入
        BigDecimal divide = a.divide(b, 30, BigDecimal.ROUND_UP);
        System.out.println(divide);
        System.out.println(10.0 / 3.0);
        System.out.println(1 == 0.9999999999999999999999999999999999999999999999999999999999999999999999);
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值