六.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创建Date
Date 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。 |