Java常用类(BigDecimal,Date,SimpleDateFormat,System)

BigDecimal

  • double是近似值存储,需要借助BigDecimal才能精确运算
        double d1 = 1.0;
        double d2 = 0.9;
        System.out.println(d1-d2);
        //0.09999999999999998
  • BigDecimal执行除法运算时,除不尽会报错,给一个保留小数位数以及舍入模式
    • divide(BigDecimal bd,int scal,RoundingMode mode)
        //subtract减法
        BigDecimal b1 = new BigDecimal("1.0");
        BigDecimal b2 = new BigDecimal("0.9");
        //subtract减法
        BigDecimal subtract = b1.subtract(b2);
        System.out.println(subtract);
        //add
        System.out.println(b1.add(b2));
        System.out.println(b1.multiply(b2));
        //2:保留两位小数  BigDecimal.ROUND_HALF_UP:四舍五入
        System.out.println(b1.divide(b2,2,BigDecimal.ROUND_HALF_UP));

Date

  • Date表示特定的瞬间,精确到毫秒,Date类中大部分方法都已经被Calendar类中的方法所取代
  • 时间单位:1秒=1000毫秒,1毫秒=1000微秒,1微秒=1000纳秒
    public static void main(String[] args) {
        //创建Date对象
        Date date1 = new Date();
        System.out.println(date1.toString());
        //昨天
        Date date2 = new Date(date1.getTime()-24*60*60*1000);
        System.out.println(date2);
        //方法after before
        boolean after = date1.after(date2);
        System.out.println(after);
        System.out.println(date1.before(date2));
        //compareTo():比较(0,-1,1)
        System.out.println(date2.compareTo(date1));
        //equals()
        System.out.println(date1.equals(date2));
    }

Calendar

  • Calendar提供了获取或设置各种日历字段的方法
  • 构造方法
    • protected Calendar():由于修饰符是proteed,所以无法直接创建该对象
  • 其他方法
    public static void main(String[] args) {
        //创建Calendar对象
        Calendar instance = Calendar.getInstance();
        System.out.println(instance.getTime().toLocaleString());
        System.out.println(instance.getTimeInMillis());
        //获取时间信息
        System.out.println(instance.get(Calendar.YEAR));
        //月从0-11
        System.out.println(instance.get(Calendar.MONTH)+1);
        System.out.println(instance.get(Calendar.DATE));
        System.out.println(instance.get(Calendar.HOUR_OF_DAY));
        System.out.println(instance.get(Calendar.MINUTE));
        System.out.println(instance.get(Calendar.SECOND));
        //修改时间
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DATE,8);
        System.out.println(calendar.getTime().toLocaleString());
        //add方法修改时间
        calendar.add(Calendar.HOUR,1);
        System.out.println(calendar.getTime().toLocaleString());
        //补充方法
        System.out.println(calendar.getActualMaximum(Calendar.DATE));
    }

SimpleDateFormat

  • SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。
  • 进行格式化(日期->文本)
  • 解析(文本->日期)
  • (y,年)(M,月)(d,天)(H,小时0-23)(m,分钟)(s,秒)(S,毫秒)
    public static void main(String[] args) throws ParseException {
        //创建SimpleDateFormate对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
        //创建Date
        Date date = new Date();
        //格式化date
        String str = sdf.format(date);
        System.out.println(str);
        //解析
        Date parse = sdf.parse("1998年02月09日18:20:28");
        System.out.println(parse);
    }

System类

  • System系统类,主要用于获取系统的属性数据和其他操作,构造方法私有的。
    	public static void main(String[] args) {
        //arrayCopy():数组的复制
        //src:原数组 srcPos:从哪个位置开始复制
        //dest:目标数组 destPos:从哪个位置开始放
        //final:复制长度
        int[] arr = {20,13,45,67,28,6,99,24};
        int[] dest = new int[8];
        System.arraycopy(arr,1,dest,0,3);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(dest[i]+"\t");
        }
        long start = System.currentTimeMillis();
        long result=0;
        for (long i =0;i<9999;i++){
            for(long j=0;j<9999;j++){
                long n = i+j;
                result = result+n;
            }
        }
        long end = System.currentTimeMillis();
        System.out.println(result);
        System.out.println("用时:"+(end-start));
  • System.gc():回收垃圾
  • System.exit():退出jvm

Random类

Math类

File类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值