IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【Java】(十九)BigDecimal精确计算浮点数;Date特定时间;Calendar日历;SimpleDateFormat格式化时间 ;System系统类 -> 正文阅读

[Java知识库]【Java】(十九)BigDecimal精确计算浮点数;Date特定时间;Calendar日历;SimpleDateFormat格式化时间 ;System系统类

Java常用类小结

对象方法都可以从API上面找:

  • 内部类:在一个类的内部再定义一个完整的类。分为四种:成员内部类、静态内部类、局部内部类、匿名内部类。
  • Object类:所有类的直接或间接父类,可存储任何对象。
  • 包装类:基本数据类型所对应的引用数据类型,可以使Object统一所有数据。
  • String类:字符串是常量,创建之后不可改变,字面值保存在字符串池中,可以共享。
  • BigDecimal:可精确计算浮点数。
  • Date:特定时间。
  • Calendar:日历
  • SimpleDateFormat:格式化时间
  • System:系统类

BigDecimal类:精确计算浮点数

  1. 很多实际应用中需要精确运算,而double是近似值存储,不在符合要求,需要借助BlgDecimal。
  2. 位置:java.math包中。
  3. 作用:精确计算浮点数
  4. 创建方式:BigDecimal bd=new BigDecimal("1.0");。【一定要用引号,不然和double一样近似值存储】
  5. 方法:
    (1)BigDecimal add(BigDecimal bd)加
    (2)BigDecimal subtract(BigDecimal bd)减
    (3)BigDecimal multiply(BigDecimal bd)乘
    (4)BigDecimal divide(BigDecimal bd)除
    除法: divide(BigDecimal bd,int scal, RoupdingMode mode)
    参数scal:指定精确到小数点后几位。
    参数model:指定小数部分的取舍模式,通常采用四舍五入的模式。取值为BigDecimal.ROUND_HALF_UP
package classs;

import java.math.BigDecimal;

public class BigDecimalText {
    public static void main(String[] args) {
        //double近似值存储
        double d1 = 1.9;
        double d2 = 0.9;
        System.out.println(d1-d2);//0.9999999999999999

        //BigDecimal高精度运算
        BigDecimal b1 = new BigDecimal("1.1");
        BigDecimal b2 = new BigDecimal("0.2");
        System.out.println(b1);
        System.out.println(b2);

        //加减乘除运算,均返回BigDecimal对象
        BigDecimal ad = b1.add(b2);
        System.out.println(ad);
        System.out.println(b1.subtract(b2));
        System.out.println(b1.multiply(b2));
        System.out.println(b1.divide(b2)); //能都整除可以直接除

        //除法测试:不能整除需要限定精度和舍入制度
        //System.out.println(new BigDecimal("10").divide(new BigDecimal("3")));//编译报错
        System.out.println(new BigDecimal("10").
                divide(new BigDecimal("3"), 3, BigDecimal.ROUND_HALF_UP));
    }
}

/*
0.9999999999999999
1.1
0.2
1.3
0.9
0.22
5.5
3.333
 */

Date类:特定时间

  1. Date表示特定的瞬间,精确到毫秒
    Date类中的大部分方法都已经被Calendar类中的方法所取代。但是过时的方法还是可以用。
  2. 时间单位:
    1秒=1000毫秒
    1毫秒=1000微秒
    1微秒=1000纳秒
  3. 构造方法:new
    Date() :分配一个 Date对象并将它初始化,它代表的时间分配给它,测量精确到毫秒。
    Date(long date) :分配一个 Date对象并将它初始化为代表指定的毫秒数自基准时间被称为“时代”,即1970年1月1日,00:00:00 GMT。
  4. 对象方法:
    long getTime() :返回毫秒数自1970年1月1日以来,该 Date对象表示00:00:00 GMT。
    boolean after(Date when) :测试如果这个日期是在指定日期之后。 同样的还有afterequals
    int compareTo(Date anotherDate) :比较两个日期。 d1.compareTo(d2);d1后返回正值,相等返回0,提前返回负值。
package classs;

import java.util.Date;

public class DateText {
    public static void main(String[] args) {
        Date d1 = new Date(); //默认构造今天
        System.out.println(d1); //运行结果同(d1.toString()
        System.out.println(d1.toLocaleString());//过时方法,仍然可用
        Date d2 = new Date(d1.getTime()-(60*60*24*1000));//通过毫秒数,修改为昨天
        System.out.println(d2.toLocaleString());

        //比较日期
        System.out.println(d1.after(d2));
        System.out.println(d1.equals(d2));
        System.out.println(d1.before(d2));
        System.out.println(d1.compareTo(d2));
    }
}
/*
Sun Oct 17 21:17:24 GMT+08:00 2021
2021-10-17 21:17:24
2021-10-16 21:17:24
true
false
false
1
 */

Calendar类:日历

  1. Calendar提供了获取或设置各种日历字段的方法。
  2. 构造方法:protected Calendar() 由于修饰符是protected,所以无法直接创建该对象
  3. 其他方法:
    在这里插入图片描述
package classs;

import java.util.Calendar;

public class CalendarText {
    public static void main(String[] args) {
        Calendar c1 = Calendar.getInstance();//不能直接创建对象

        //System.out.println(c1);//可以直接打印,长的很
        System.out.println(c1.getTime());//返回Date对象表示时间

        //get获取年、月、日..
        System.out.println("get获取时间:");
        int year = c1.get(Calendar.YEAR);
        System.out.println(year);
        System.out.println(c1.get(Calendar.MONTH));//0-11
        System.out.println(c1.get(Calendar.DAY_OF_MONTH));
        System.out.println(c1.get(Calendar.HOUR));//12小时,还有一个是24小时
        System.out.println(c1.get(Calendar.MINUTE));
        System.out.println(c1.get(Calendar.SECOND));

        //修改时间
        System.out.println("修改时间:");
        Calendar c2 = Calendar.getInstance();//set方法修改时间
        c2.set(Calendar.YEAR, 2008);
        System.out.println(c2.getTime().toLocaleString());
        c2.add(Calendar.YEAR, 2);//add方法修改时间按
        System.out.println(c2.getTime().toLocaleString());

        //获取时间常量上下线
        System.out.println("Calendar.MONTH范围:");
        System.out.println(c2.getActualMaximum(Calendar.MONTH));
        System.out.println(c2.getActualMinimum(Calendar.MONTH));
    }
}

/*
Sun Oct 17 22:38:24 GMT+08:00 2021
get获取时间:
2021
9
17
10
38
24
修改时间:
2008-10-17 22:38:24
2010-10-17 22:38:24
Calendar.MONTH范围:
11
0
 */

SimpleDateFormat类:格式化时间

  1. SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。
  2. 进行格式化Date.format(Simple)(日期→文本)、解析Simple.parse("2020/05/20")(文本→日期)。
  3. 常用的时间模式字母
    在这里插入图片描述
package classs;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFormatText {
    public static void main(String[] args) throws Throwable {
        //先创建一个对象
        SimpleDateFormat s1 = new SimpleDateFormat("yyyy/MM/dd");
        Date d1 = new Date();

        //格式化:日期→文本
        String str = s1.format(d1);
        System.out.println(str);//2021/10/17

        //解析:文本→日期
        Date d2 = s1.parse("2020/05/20");
        System.out.println(d2);//Wed May 20 00:00:00 GMT+08:00 2020
    }
}

System类:系统

System系统类,主要用于获取系统的属性数据和其他操作,构造方法私有的。
在这里插入图片描述
System.currentTimeMillis();获取时间方法可用于计算程序速率(结束时间-开始时间),在(十八)可变长字符串中使用过。
System.gc();回收垃圾方法在(十六)finalize()方法回收中使用过。

package classs;

public class SystemText {
    public static void main(String[] args) {
        System.out.println("arraycopy数组的复制");
        //参数src源数组;srcPos从哪个位置开始复制; dest目标数组;destPos目标数组的位置;length复制的长度
        int[] arr = {1,2,3,4,5,6,7,8};
        int[] dest = new int[8];
        System.arraycopy(arr, 0, dest, 2, 4);
        for(int i=0; i<dest.length; i++) {
            System.out.println(dest[i]);
        }

        //exit推出,后面程序不再执行
        System.exit(0);
        System.out.println("结束");
    }
}
/*
arraycopy数组的复制
0
0
1
2
3
4
0
0
 */
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:15:46  更:2021-10-18 17:17:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:16:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码