JavaSE——(四)常用类(Math类,Random类,System类,BigDecimal类,Date类,SimpleDateFormat类,Calender类)

1.Math类

  • 概述

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

  • 成员变量
public static final double E : 		自然底数
public static final double PI:		圆周率
  • 成员方法
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) 四舍五入(原理是在参数的基础上加0.5,然后向下取整)
public static double sqrt(double a)获取正平方根

2.Random类

  • 概述

此类用于产生随机数

  • 构造方法
public Random()			 没有给定种子,使用的是默认的(当前系统的毫秒值)
public Random(long seed)		 给定一个long类型的种子,给定以后每一次生成的随机数是相同的
  • 成员方法
public int nextInt()//没有参数 表示的随机数范围 是int类型的范围
public int nextInt(int n)//可以指定一个随机数范围 
void nextBytes(byte[] bytes)  生成随机字节并将其置于用户提供的空的 byte 数组中。 
  • 案例演示
package com.westmo.demo6;
import java.util.Arrays;
import java.util.Random;
public class MyDemo5 {
    public static void main(String[] args) {
        Random random = new Random();
        for (int i = 0; i < 10; i++) {
            int i1 = random.nextInt(100) + 1;
            System.out.print(i1+" ");
        }
        System.out.println("\n");
        Random random1 = new Random();
        byte[] bytes = new byte[10];
        random1.nextBytes(bytes);
        System.out.println(Arrays.toString(bytes));
    }
}

3.System类

  • 概述

包含一些有用的字段和方法,不能被实例化

  • 成员方法
public static void gc()//调用垃圾回收器
public static void exit(int status)//退出java虚拟机 0 为正常退出 非0为 异常退出
public static long currentTimeMillis()//获取当前时间的毫秒值
  • 案例演示
package com.westmo.demo6;
public class MyDemo6 {
    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);
        System.gc();
        System.exit(0);
    }
}

4.BigDecimal和BigInteger类

  • 概述

由于在运算的时候,float类型和double类型容易丢失数据精度,为了能精确的表示和计算浮点数Java中提供了BigDecimal类。
为了让超过long类型的数据进行运算,Java就提供了BigInteger类,使用和BigDecimal类差不多。

  • 构造方法
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 小数点后面保留几位
  • 案例演示
package com.westmo.demo6;
import java.math.BigDecimal;
public class MyDemo7 {
    public static void main(String[] args) {
        BigDecimal bigDecimal = new BigDecimal("9.12319961433333335");
        BigDecimal bigDecimal2 = new BigDecimal("3.45252433333333333333333");
        BigDecimal add = bigDecimal.add(bigDecimal2);//加
        BigDecimal subtract = bigDecimal.subtract(bigDecimal2);//减
        BigDecimal multiply = bigDecimal.multiply(bigDecimal2);//乘
        System.out.println(multiply);
        System.out.println(subtract);
        System.out.println(add.toString());
        BigDecimal bigDecimal1 = new BigDecimal("10");
        BigDecimal bigDecimal3 = new BigDecimal("3");
        //除不尽时
        System.out.println(bigDecimal1.divide(bigDecimal3,50,BigDecimal.ROUND_CEILING));
    }
}

5.Date类

  • 概述

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

  • 构造方法
public Date()
public Date(long date)  //把一个long类型的毫秒值转换成一个日期对象
  • 成员方法
public long getTime():	获取一个日期对象对象毫秒值
public void setTime(long time):	给一个日期对象设置上指定的毫秒值 例:date.setTime(1000 * 60 * 60) ;
这两个方法通常用于日期对象和毫秒值之间的转换
  • 案例演示
package com.westmo.demo7;
import java.util.Date;
public class MyDemo1 {
    public static void main(String[] args) {
        //获取当前时刻的时间
        Date date = new Date();
        System.out.println(date);
        Date date1 = new Date(1000*60*60*24);
        System.out.println(date1);
        //把当前时间对象转换为毫秒值
        Date date2 = new Date();
        long time = date2.getTime();
        System.out.println(time);
        //把毫秒值转换为时间对象
        Date date3 = new Date();
        long time1=1000*60*60*24*2;
        date3.setTime(time1);
        System.out.println(date3);
    }
}

6.SimpleDateFormat类

  • 概述

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

  • 构造方法
public SimpleDateFormat():使用默认的模式来创建一个SimpleDateFormat对象
public SimpleDateFormat(String pattern):使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象
  • 成员方法
public String format(Date date): 	把一个日期对象格式化成一个字符串
public Date parse(String dateStr):	把一个日期字符串解析成一个日期对象 注意要以指定格式解析 
  • 案例演示
package com.westmo.demo7;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyDemo2  {
    public static void main(String[] args) {
        Date date = new Date();
        //按照默认格式将日期对象格式化
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
        String format = simpleDateFormat.format(date);
        System.out.println(format);
         //指定格式对日期对象进行
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-mm-dd hh-mm-ss");
        String format1 = simpleDateFormat1.format(date);
        System.out.println(format1);
        //按照指定格式将日期字符串转换为一个日期对象
        String time="1997-01-26 18-23-45";
        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-mm-dd hh-mm-ss");
        Date parse = null;
        try {
            parse = simpleDateFormat2.parse(time);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println(parse);
    }
}
  • 练习(算一下你来到这个世界多少天?)
package com.westmo.demo7;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class MyDemo3 {
    public static void main(String[] args) {
        Date date = new Date();
        long nowtime = date.getTime();
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入你的出生日期");
        String s = scanner.nextLine();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
        try {
            Date parse = simpleDateFormat.parse(s);
            long starttime = parse.getTime();
            long time = nowtime - starttime;
            System.out.println(time / 1000 / 60 / 60 /24);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

7.Calender类

  • 概述

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

  • 成员方法
public static Calendar getInstance()	使用默认时区和语言环境获得一个日历对象
public int get(int field)		获得给定日历字段对应的值 field通过Calendar提供的字段来拿
  • 案例演示
package com.westmo.demo7;
import java.util.Calendar;
public class MyDemo4 {
    public static void main(String[] args) { ;
        Calendar instance = Calendar.getInstance();
        System.out.println(instance.get(Calendar.YEAR));//输出该日历对象所对应的年份
        System.out.println(instance.get(Calendar.MONTH));//月份 0代表一月
        System.out.println(instance.get(Calendar.DAY_OF_MONTH));//日期
        System.out.println(instance.get(Calendar.HOUR));//小时
        System.out.println(instance.get(Calendar.MINUTE));//分钟
        System.out.println(instance.get(Calendar.SECOND));//秒
        instance.add(Calendar.YEAR,-1);//当前年份减1
        System.out.println(instance.get(Calendar.YEAR));
        instance.set(2018,8,12);//设置日期
        System.out.println(instance.get(Calendar.YEAR));
    }
}
练习
//输入一个年份,输出每年的二月份有多少天?
package com.westmo.demo7;
import java.util.Calendar;
import java.util.Scanner;
public class MyDemo5 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入一个年份");
        int i = scanner.nextInt();
        Calendar instance = Calendar.getInstance();
        instance.set(i,2,1);
        instance.add(Calendar.DAY_OF_MONTH,-1);
        System.out.println(instance.get(Calendar.DAY_OF_MONTH));
    }
}
发布了58 篇原创文章 · 获赞 13 · 访问量 1889

猜你喜欢

转载自blog.csdn.net/weixin_44324174/article/details/103996269