1、包装类/BigDecimal
BigDecimal专门用在处理财务数据 处理高精度数值
使用BigDecimal.valueOf()初始化数据 new BigDecimal()会丢失精度
2、Comparable/Comparator
3、hashCode与equals
4、String/StringBuilder/StringBuffer
5、时间
5.1 时间戳
时间戳为1970-01-01T00:00:00Z之后经过的时间 java精确到毫秒
java8之前使用Timestamp
java8使用Instant
java8 Clock 提供了使用时区和最佳可用系统时钟访问当前的瞬间、日期和时间 java9支持纳秒
5.2 Date
用来封装日期和时间 比较简单 可以比较时间
5.3 SimpleDateFormat
格式化日期 线程不安全?
| 字母 | 描述 |
|---|---|
| G | 纪元标记 |
| y | 四位年份 |
| M | 月份 |
| d | 一个月的日期 |
| h | A.M./P.M. (1~12)格式小时 |
| H | 一天中的小时 (0~23) |
| m | 分钟数 |
| s | 秒数 |
| S | 毫秒数 |
| E | 星期几 |
| D | 一年中的日子 |
| F | 一个月中第几周的周几 |
| w | 一年中第几周 |
| W | 一个月中第几周 |
| a | A.M./P.M. 标记 |
| k | 一天中的小时(1~24) |
| K | A.M./P.M. (0~11)格式小时 |
| z | 时区 |
| ' | 文字定界符 |
| " | 单引号 |
5.4 Calendar
| 常量 | 意义 |
|---|---|
| Calendar.YEAR | 年份 |
| Calendar.MONTH | 月份 (0-11) |
| Calendar.DATE | 日期 |
| Calendar.DAY_OF_MONTH | 日期,和上面的字段意义完全相同 |
| Calendar.HOUR | 12小时制的小时 |
| Calendar.HOUR_OF_DAY | 24小时制的小时 |
| Calendar.MINUTE | 分钟 |
| Calendar.SECOND | 秒 |
| Calendar.DAY_OF_WEEK | 星期几 |
使用比较灵活 功能强大
可以增减时间 获取精确时间
GregorianCalendar为Calendar实现类 功能更强大
5.5 java8
主要用来替代旧api
| 类的名称 | 描述 |
|---|---|
| Instant | 时间戳 |
| Clock | 时钟比如获取美国纽约的时间 |
| Duration | 计算两个“时间”的间隔 |
| Period | 用于计算两个“日期”的间隔 |
| LocalDate | 只包含日期 比如:2020-04-05 |
| LocalTime | 只包含时间 比如:12:34:21 |
| LoacalDateTime | 包含日期和时间 比如:2021-04-05 12:34:34 |
| Year | 年 |
| YearMonth | 年-月 |
| MonthDay | 月-日 |
| Month | 1-12 |
| DayOfWeek | |
| ZonrOffset | 时区偏移量 |
| ZonedDateTime | 带时区的时间 |
| ZonedId | 代表一个时区 |
| DateTimeFormatter | 时间格式化 |
参考:
https://blog.csdn.net/java_2017_csdn/article/details/76000652
https://www.runoob.com/java/java-date-time.html
Clock https://blog.csdn.net/qq_31635851/article/details/117778881
java8 https://www.cnblogs.com/xkkdev/p/15908719.html
6、Runtime
使用单例模式 可以获得虚拟机的信息 如查看内存、执行进程、gc()
7、不定参数
形如void test(int ...param) param的操作与数组相同
8、float转double 精度不准
float直接转double精度不准确 可以将float转字符再通过包装类转为double







网友评论