Java常用类(Math类、Random类、 System类、 BigDecimal类、 Date类、 SimpleDateFormat类、 Calendar类)

一、Math类

//Math 数学工具类
        //属性
        double pi = Math.PI;
        double e = Math.E;
        //方法
        double num = Math.random(); /*生成随机数 0-----1 之间*/
        //获取最值
        int max = Math.max(19, 20);
        int min = Math.min(20, 40);
        int max1 = Math.max(Math.max(19, 20), 100);
        //向上取整,向下取整
        double ceil = Math.ceil(1.9);
        double floor = Math.floor(1.9);
        //四舍五入
        long round = Math.round(1.48);
        System.out.println(round+"=====");
        //求一个几次幂
        double pow = Math.pow(2, 3);
        System.out.println(pow);
        //求平方根
        double sqrt = Math.sqrt(4);
        System.out.println(sqrt);
        //求一个数的立方根
        double pow2 = Math.pow(8, 1.0/3);
        System.out.println(pow2);
        //求一个数的绝对值
        System.out.println(Math.abs(-1));

二、Random类

    public static void main(String[] args) {
        //Random类 生成随机数据的类
        // 此类的实例用于生成伪随机数流。此类使用 48 位的种子,
        Random random = new Random();
        //生成一些随机整数
       byte[] bytes= new byte[10];
        for (int i = 0; i < 100; i++) {
            //int num = random.nextInt(); //如果没有传入一个范围,生成的随机数就是int的范围
           //int num = random.nextInt(100); //范围就是 0-99 包含0和99
          //  int num = random.nextInt(100)+1;

          //  double num = random.nextDouble();
          //  boolean b = random.nextBoolean();
            //随机一些byte范围的数,填到这个数组中
            random.nextBytes(bytes);
            System.out.println(Arrays.toString(bytes));
        }

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类

public static void main(String[] args) {

    // System 类包含一些有用的类字段和方法。它不能被实例化。

    //InputStream 抽象类
    //in
    //public static final InputStream in“标准”输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入
    Scanner sc= new Scanner(System.in);
    //out
    //public static final PrintStream out“标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输

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

    System.err.println("abbdfdfd"); //打印出来是红色的
}
public static void main(String[] args) {
        //System.gc();//运行垃圾回收器
        //System.currentTimeMillis()获取当前系统的毫秒值
        //System.exit(0)退出JVM。给0正常退出 ,非0 强制退出

    }

四、BigDecimal类

 //如果对精度要求比较高,就可以使用 BigDecimal
    BigDecimal aNum = new BigDecimal(a);
    BigDecimal bNum = new BigDecimal(b);
    BigDecimal add = aNum.add(bNum); //加
    System.out.println(add);
    BigDecimal subtract = aNum.subtract(bNum); //减
    System.out.println(subtract);

    BigDecimal multiply = aNum.multiply(bNum);
    System.out.println(multiply); //乘
    //不能整除时,我们要规定,保留位数,以及取舍方式
    BigDecimal divide = aNum.divide(bNum,30,BigDecimal.ROUND_CEILING);
    System.out.println(divide);
    System.out.println(1==0.999999999999999999999);

五、Dat类

public static void main(String[] args) {
       // 类 Date 表示特定的瞬间,精确到毫秒。
        Date date = new Date();
        System.out.println(date.toString()); //打印当前的日期
        //Date( long date)
        //分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
        Date date1 = new Date(0); //给计算机元年加上相应的时间量
        System.out.println(date1)
    }
Date date = new Date();

        //获取当前系统的毫秒值
        long time = date.getTime();
        System.out.println(time);

        //获取当前系统的毫秒值
        //long l = System.currentTimeMillis();
        //System.out.println(l);
        Date date1 = new Date();
        date1.setTime(1000*60*60); //给计算机元年设置相应的时间量
        System.out.println(date1);
        //Date date2 = new Date(1000 * 60 * 60);
Date date = new Date();
        int year = date.getYear();
        int month = date.getMonth();
        int day = date.getDay();
        System.out.println(year);
        System.out.println(month);
        System.out.println(day);
        //月份从0开始数
//long-------日期Date
        long time = 1000 * 60 * 60;
        Date date = new Date(time);
        new Date().setTime(time);

//Date------1000
        Date date1 = new Date();
        long time1 = date1.getTime();

六、SimpleDateFormat类

// SimpleDateFormat 就是用来格式化日期,让日期看起来,符号我们的阅读习惯
        //采用默认的格式,来对日期格式化
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
        //格式化日期的方法
        String format = simpleDateFormat.format(date);
        System.out.println(format);

        //我们可以根据自己的需要,来指定日期的格式
        //参数就指定格式化日期的格式
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E");
        //按照指定的格式来格式化日期
        String format1 = simpleDateFormat1.format(date);
        System.out.println(format1);
        //把一个日期字符串,解析成一个日期对象
        Date date = simpleDateFormat.parse(dateStr);
        System.out.println(date);

        //Date-----日期字符串   调用:format()
        //日期字符串-----Date  调用: parse();

七、Calendar类

Calendar instance = Calendar.getInstance();
        //给相应的日历字段,加上会减去相应的量  减去可以填数负数
        instance.add(Calendar.YEAR,-1);
        int i = instance.get(Calendar.YEAR);
        System.out.println(i);

        instance.add(Calendar.DAY_OF_MONTH,2);
        System.out.println(instance.get(Calendar.DAY_OF_MONTH));

        //直接设置日期 set()
        Calendar instance1 = Calendar.getInstance();
        instance1.set(2000,6,19,14,20,20);
        int i1 = instance1.get(Calendar.YEAR);
        System.out.println(i1);

八、案例演示

  1. 需求:算一下你来到这个世界多少天 ?
public static void main(String[] args) throws ParseException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的出生日期,格式如:1990-10-10");
        String str = scanner.nextLine();

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date parse = simpleDateFormat.parse(str);
        long time = parse.getTime();
        long time1 = System.currentTimeMillis();
        long l = (time1 - time) / 1000 / 60 / 60 / 24;
        System.out.println("你已经来到世上 "+l+"天了");
    }
  1. //需求:键盘录入任意一个年份,获取任意一年的二月有多少天
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个年份,格式:2018");
        String year= scanner.nextLine();

        Calendar instance = Calendar.getInstance();
        instance.set(Calendar.DAY_OF_MONTH,2,1);
        instance.add(Calendar.DAY_OF_MONTH,-1);
        int i = instance.get(Calendar.DAY_OF_MONTH);
        System.out.println(i);
    }

你可能感兴趣的:(Java常用类(Math类、Random类、 System类、 BigDecimal类、 Date类、 SimpleDateFormat类、 Calendar类))