2020.8.2Java基础总结14_Math、Random、System、BigDecimal、Date、SimpleDateFormat、Calendar类

Java基础总结14

一、Math类

1.1 概述

​ Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

1.2 成员变量

  • public static final double E :自然底数
  • public static final double PI:圆周率

1.3 成员方法

  • 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):获取正平方根。

二、Random类

2.1 概述

​ 此类的实例用于生成伪随机数。

2.2 构造方法

  • public Random():没有给定种子,使用的是默认的(当前系统的毫秒值)。
  • public Random(long seed):给定一个long类型的种子,给定以后每一次生成的随机数是相同的。

2.3 成员方法

  • public int nextInt():没有参数 表示的随机数范围 是int类型的范围
  • public int nextInt(int n):可以指定一个随机数范围
  • void nextBytes(byte[] bytes):生成随机字节并将其置于用户提供的空的 byte 数组中。

三、System类

3.1 概述

​ System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。

3.2 成员方法

  • public static void gc():调用垃圾回收器。

  • public static void exit(int status):退出java虚拟机 0 为正常退出非0为异常退出。

  • public static long currentTimeMillis():获取当前时间的毫秒值。

    • currentTimeMillis方法就是获取当前系统时间与1970年01月01日00:00点之间的毫秒差值
    import java.util.Date;
    
    public class SystemDemo {
        public static void main(String[] args) {
           	//获取当前时间毫秒值
            System.out.println(System.currentTimeMillis()); 
        }
    }
    

3.3 练习

​ 验证for循环打印数字1-9999所需要使用的时间(毫秒):

public class SystemTest1 {
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            System.out.println(i);
        }
        long end = System.currentTimeMillis();
        System.out.println("共耗时毫秒:" + (end - start));
    }
}

四、BigDecimal类

4.1 概述

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

4.2 构造方法

  • public BigDecimal(String val):将 BigDecimal 的字符串表示形式转换为 BigDecimal。

4.3 成员方法

  • 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小数点后面保留几位。

五、Date类

5.1 概述

​ Date类 表示特定的瞬间,精确到毫秒。

5.2 构造方法与成员方法

构造方法:

  • public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
  • public Date(long date):把一个long类型的毫秒值转换成一个日期对象。

成员方法:

  • public void setTime(long time):给一个日期对象设置上指定的毫秒值。

六、SimpleDateFormat类

6.1 概述

SimpleDateFormat: 可以把一个日期对象格式化成一个文本(字符串) , 也可以把一个日期字符串解析成一个日期对象。

6.2 构造方法

  • public SimpleDateFormat():使用默认的模式来创建一个SimpleDateFormat对象。
  • public SimpleDateFormat(String pattern):使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象。

6.3 格式规则

标识字母(区分大小写)含义
y
M
d
H
m
s

6.4 成员方法

  • public String format(Date date):把一个日期对象格式化成一个字符串。
  • public Date parse(String dateStr):把一个日期字符串解析成一个日期对象注意要以指定格式解析。

6.5 练习

  • 需求:算一下你来到这个世界多少天?
public class Test1 {
    public static void main(String[] args) throws ParseException {
        System.out.println("请输入出生日期:格式 1990-01-01");
        String s = new Scanner(System.in).next();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date birthdayDate = sdf.parse(s);
        Date todayDate = new Date();
        long birthdaySecond = birthdayDate.getTime();
        long todaySecond = todayDate.getTime();
        long cha= todaySecond - birthdaySecond;
        if(cha<0){
            System.out.println("输入错误!");
        }else {
            System.out.println(cha/1000/60/60/24);
        }
    }
}

七、Calendar类

7.1 概述

​ Calendar 类是一个抽象类,不能直接new对象,可以通过他的一个静态成员方法getInstance()来获取他的对象。例如:

import java.util.Calendar;

public class MyTest1 {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
    }    
}

7.2 常用方法

  • public int get(int field):返回给定日历字段的值。
  • public void set(int field, int value):将给定的日历字段设置为给定值。
  • public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
  • public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

7.3 练习

  • 需求:键盘录入任意一个年份,获取任意一年的二月有多少天。
import java.util.Calendar;
import java.util.Scanner;

public class Test2 {
    public static void main(String[] args) {
        System.out.println("请输入年份:");
        int i = new Scanner(System.in).nextInt();
        Calendar cal = Calendar.getInstance();
        cal.set(i,2,1);
        cal.add(Calendar.DAY_OF_MONTH,-1);
        int day = cal.get(Calendar.DAY_OF_MONTH);
        System.out.println("二月有"+day+"天");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值