假期学习13

第13天:基础类库(中)
对应章节:第7章
(1)今天做了什么: Math类:abs、max/min、pow、sqrt、random()等静态方法。Random类比Math.random()更强大,可指定范围;ThreadLocalRandom多线程场景性能更优。BigDecimal——float和double的IEEE 754精度问题(0.1+0.2不等于0.3),金融场景必须用BigDecimal。关键:必须用字符串构造器new BigDecimal("0.1")而非double构造器(会带入精度误差)。用add/subtract/multiply/divide方法运算,设RoundingMode.HALF_UP四舍五入。日期时间:Date、Calendar→Java 8的LocalDate/LocalTime/LocalDateTime(不可变、线程安全),DateTimeFormatter格式化解析。练习:日期计算器(考虑闰年),BigDecimal收银系统。
(2)明天准备做什么: 学完第7章后半部分——正则表达式语法(字符类、量词、边界)、Pattern和Matcher的用法、String的正则方法(matches、replaceAll、split),以及国际化的NumberFormat和DateFormat。练习编写邮箱和手机号验证正则,实现模板替换工具。
(3)遇到的问题: new BigDecimal(0.1)输出了一长串小数,因为0.1的double值本身不精确。一定用new BigDecimal("0.1")。BigDecimal的divide除不尽时抛ArithmeticException,必须指定舍入模式。LocalDate是不可变对象,plusDays()返回新对象而非修改原对象——忘记接收返回值导致修改丢失。

posted @ 2026-08-04 22:49  呱哒  阅读(5)  评论(0)    收藏  举报