六.BigDecimal
位置:java.math包中
作用:精确计算浮点数
创建方式:BigDecimal bd=new BigDecimal(“1.0”)。
常用方法:
| 方法名 | 描述 |
|---|---|
| BigDecimal add(BigDecimal bd) | 加 |
| BigDecimal subtract(BigDecimal bd) | 减 |
| BigDecimal multiply(BigDecimal bd) | 乘 |
| BigDecimal divide(BigDecimal bd) | 除 |
除法:divide(BigDecimal bd,int scal,RoundingMode mode)。
参数scale :指定精确到小数点后几位。
参数mode :
指定小数部分的取舍模式,通常采用四舍五入的模式。
取值为BigDecimal.ROUND_HALF_UP。
案例:
public class Demo7 {public static void main(String[] args) {double d1=1.0;double d2=0.9;System.out.println(d1-d2);//面试题double result=(1.4-0.5)/0.9;System.out.println(result);//BigDecimal,大的浮点数精确计算BigDecimal bd1=new BigDecimal("1.0");BigDecimal bd2=new BigDecimal("0.9");//减法BigDecimal r1=bd1.subtract(bd2);System.out.println(r1);//加法BigDecimal r2=bd1.add(bd2);System.out.println(r2);//乘法BigDecimal r3=bd1.multiply(bd2);System.out.println(r3);//除法BigDecimal r4=new BigDecimal("1.4").subtract(new BigDecimal("0.5")).divide(new BigDecimal("0.9"));System.out.println(r4);BigDecimal r5=new BigDecimal("20").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);System.out.println(r5);}
}
七.Date
-
Date表示特定的瞬间,精确到毫秒。
-
Date类中的大部分方法都已经被Calendar类中的方法所取代。
-
时间单位
-
1秒=1000毫秒
-
1毫秒=1000微秒
-
1微秒=1000纳秒
-
案例:
public class Test {public static void main(String[] args) {//日期类型Date d =new Date();System.out.println(d);//过时方法System.out.println(d.toLocaleString());System.out.println(d.getYear()+1900);//在电脑里面的毫秒System.out.println(d.getTime());System.out.println("=============");Calendar c=Calendar.getInstance();System.out.println(c);
// calendar.set(year, month, date);System.out.println(c.get(Calendar.YEAR));}
}
八.Calendar
-
Calendar提供了获取或设置各种日历字段的方法。
-
protected Calendar() 构造方法为protected修饰,无法直接创建该对象。
案例:
//7、使用Calender输出日期。
public class Text {public static void main(String[] args) {Calendar c=Calendar.getInstance();
// System.out.println(c); int year =c.get(Calendar.YEAR);int month=c.get(Calendar.MONTH);int day=c.get(Calendar.DAY_OF_MONTH);int hour=c.get(Calendar.HOUR_OF_DAY);int minute=c.get(Calendar.MINUTE);int second=c.get(Calendar.SECOND);System.out.println(year+"年"+(month+1)+"月"+day+"日"+hour+"小时"+minute+"分"+second+"秒");//2021年4月4日19小时54分58秒}
}
九.SimpleDateFormat*
SimpleDateFormat是以与语言环境有关的方式来格式化和解析日期的类。
常用时间模式字母:
| 字母 | 日期或时间 | 示例 |
|---|---|---|
| y | 年 | 2019 |
| M | 年中月份 | 08 |
| d | 月中天数 | 10 |
| H | 1天中小时数(0-23) | 22 |
| m | 分钟 | 16 |
| s | 秒 | 59 |
| S | 毫秒 | 367 |
案例:
public class TestSimpleDateFormat {public static void main(String[] args) throws Exception{//1创建SimpleDateFormat对象 y 年 M 月//SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH-mm-ss");SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");//2创建DateDate date=new Date();//格式化date(把日期转成字符串)String str=sdf.format(date);System.out.println(str);//解析 (把字符串转成日期)Date date2=sdf.parse("1990/05/01");System.out.println(date2);//2021/04/04//Tue May 01 00:00:00 CDT 1990}
}
十.System
System系统类,主要用于获取系统的属性数据和其他操作。
| 方法名 | 说明 |
|---|---|
| static void arraycopy(...) | 复制数组 |
| static long currentTimeMillis() | 获取当前系统时间,返回的是毫秒值 |
| static void gc(); | 建议JVM赶快启动垃圾回收器回收垃圾 |
| static void exit(int status) | 退出jvm,如果参数是0表示正常退出jvm,非0表示异常退出jvm。 |