孤尽T31训练营07Java代码避坑指南笔记

213 阅读1分钟

这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战

浮点数的处理

正确选择数据类型

  • 浮点型,浮点数是属于有理数中的某些特定子集的数字表示,在计算机中用以近似表示任意某个实数

  • 整形,计算机中的一个基本的专业术语,指没有小数部分的数据

货币数据类型的选择

  • 任何货币金额,均以最小货币单位且整型类型来进行存储

浮点数据类型的问题

  • 精度丢失

浮点数如何避坑

  • 浮点数之间的等值判断

    • 浮点数,Math.abs(a-b)<diff
    • BigDecimal,compareTo()
  • 禁止使用BigDecimal(double)

日期数据的处理

JDK8新增日期API

  • LocalDate,日期

  • LocalTime,时刻

  • LocalDateTime,时间

  • Instant,时间戳

JDK8新增日期API优点

  • 不变性,线程安全

  • 关注点分离,时间日期都有对应的类

  • 清晰,在所有的类中,方法都被明确定义用以完成相同的行为

  • 实用操作,所有新的日期/时间API类都实现了一系列方法用以完成能用的任务

日期格式化要注意的问题

  • yyyy,代表当天所在的年

  • YYYY,代表当周所在的年,如果跨年的话返回的是下一年

控制语句的避坑规范

并发场景中控制语句避坑,避免使用等号判断中断或退出的条件,否则容易产生等值判断被击穿的情况

优雅的面向对象

七大设计原则,参考01架构设计