*Math类
*System类
拓展:
*Runtime类
介绍:
- 代表程序所在的运行环境;
- Runtime是一个单例类。
启动某个程序时,形参变量填的是程序的启动路径,如果某个程序已经配置了环境变量,那个这个程序就可以直接输入程序名称(例如:QQ),程序就会启动。
当有异常出现时,可以用Alt+回车将异常清除。
BigDecimal类
特点
解决小数运算失真的问题。
常见构造器,常用方法
(double val)仍存在运算失真的精度损失风险,所以一般选择(String val)。
JDK8之前传统的日期、时间
Date类
概念
代表的是日期和时间。
常用构造器和方法
SimpleDateFormat(常用)
概念
代表简单按日期格式化,可以用来把日期对象、时间毫秒值格式化成我们想要的形式。
常见构造器和方法
指定的时间格式:yyyy年MM月:dd日 HH:mm:ss (EEE a(指的是上午));
Calendar类–抽象类
介绍
特点
对象是可变的,但对对象内容修改后,对象原来的信息就会被修改。
常见方法
其中月份是从0开始的,真实的月份需要+1。
-
获得当前日历对象;
-
获取日历中的某个信息;
不知道当前日历对象中包含的信息可以先将日历对象输出,再进行查询想要输出的内容。
日历对象中的部分内容有: -
拿到日历中记录的日期对象;
-
拿到时间毫秒值;
-
修改日历信息;
-
为某个信息增加或减少指定的值;
JDK8开始新增的日期、时间类
优点
JDK新增的时间
JDK8后的日期或时间对象都是不可变对象
获取对象方案
LocalDate类
假设:LocalDate ld = new LocalDate();//2023-11-15
- 获取日期对象中的信息;
- 直接修改某个信息;
执行后:
2099-11-15
2023-12-15
2023-11-15
- 把某个信息加多少;
- 把某个信息减多少;
- 获取指定日期的LocalDate对象;
public static LocalDate of(int year , int month , int dayOfMonth)
- 判断两个日期对象是否相等,在前还是在后;
LocalTime类
与LocalDate类调用方法的格式相同:
1.获取时间用getxxx();
2.修改时间用withxxx();
3.加时间用plus();
4.减时间用minus;
5.获取指定时间或日期用public static LocalDate of(形参);
6.判断两个日期或时间是否相等,在前还是在后;
LocalDateTime类
与LocalDate类调用方法的格式也相同;只是LocalDateTime对象可以转换成 LocalDate或者LocalTime对象。
ZoneId类
常见方法
-
获取系统默认的时区;
-
获取java支持的全部失去Id;
-
把某个时区对象转换成ZoneId对象;
ZoneDateTime类
- 获取某个失去的ZoneDateTime对象;
获取世界标准时间:
2.获取系统默认时区的ZoneDateTime对象;
ZoneDateTime对象数据的修改与LocalDateTime的方法一样!
Insatant类
Instant类替代Date类
传统的Date类只能精确到毫秒,并且是可变对象;
新增的Instant类,可以精确到纳秒,并且是不可变对象,推荐Instant代替Date。
理解
通过获取Instant的对象可以拿到此刻的时间,该时间由两部分组成:从1970-01-01 00:00:00开始走到此刻的总秒数 + 不够1秒的纳秒数。
常见方法
作用
可以用来记录代码的执行时间,或用于记录用户操作某个时间的时间点。
DateTimeFormatter类
作用
传统的SimpleDateFormat线程不安全,而DateTimeFormatter线程安全。
常见方法
格式化时间一般是:
- 首先创建一个格式化器;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(“日期时间格式”);
- 对时间进行格式化;
格式化方法有很多,比如Instant,ZoneDateTime,常用的是LocalDateTime.
LocalDateTime now = LocalDateTime.now();
1.String rs = formatter.format(now); //正向格式化(用格式化器格式)
2.String rs1 = now.format(formatter);//反向格式化 (被格式化)
其他补充-Period类
作用
用于计算两个LocalDate兑现相差的年数、月数、天数。
常见方法
其他补充-Duration类
作用
用于计算两个事件对象相差的天数、小时数、分数、秒数、纳秒数;支持LocalTime
LocalDateTime\Instant等时间。
常见方法
*Arrays类
定义
用来操作数组的一个工具类。
常见方法
索引从0开始;
数组中空位置用默认值0;
打八折时:
注意:调用方法时需要注意形参,有些方法名子是一样的,但是形参列表是不一样的。这时使用BigDecimal可以避免运算失真!
如果数组中存储的是对象,如何排序?
直接用方法进行排序会报错,所以自己要制定规则对对象进行排序:
方式一:
当对象数据类型与计算后得出的数据的数据类型不一致,进行强转可能会造成数据错误,所以要使用第一种比较规则!
方式二:
接口不可以创建对象,但可以拿接口的匿名内部类对象。
新增语法知识–Lambda表达式
作用
用于简化匿名内部类的代码写法。
格式
JDK新特性–方法引用
静态方法的引用
格式
类名 :: 静态方法
使用场景
如果Lambda表达式只是调用一个静态方法,并且前后参数的形式一致,就可以使用静态方法引用。
原始代码书写:
使用Lambda表达式简化后:
引用静态方法简化后:
实例方法的引用
格式
对象名 :: 实例方法
使用场景
如果Lambda表达式只是调用一个实例方法,并且前后参数的形式一致,就可以使用实例方法引用。
特定类型的方法引用
格式
类型 :: 方法
使用场景
如果Lambda表达式只是调用一个实例方法,并且前面参数列表中的第一个参数是作为犯法的主调,后面的参数都是作为该实例方法的入参的,就可以使用特定类型的方法引用。
构造器引用
格式
类名 :: new
使用场景
如果Lambda表达式只是在创建对象,并且前后参数情况一致,就可以使用构造器引用。