java小知识3

  1. StrictMath,它提供了和Math几乎一模一样的方法。这两个类的区别在于,由于浮点数计算存在误差,不同的平台(例如x86和ARM)计算的结果可能不一致(指误差不同),因此,StrictMath保证所有平台计算结果都是完全相同的,而Math会尽量针对平台优化计算速度,所以,绝大多数情况下,使用Math就足够了。
  2. 时刻牢记必须使用SecureRandom来产生安全的随机数
  3. 所有异常都可以调用printStackTrace()方法打印异常栈,这是一个简单有用的快速打印异常的方法。
  4. Java的异常是class,并且从Throwable继承;
    Error是无需捕获的严重错误,Exception是应该捕获的可处理的错误;
    RuntimeException无需强制捕获,非RuntimeException(Checked Exception)需强制捕获,或者用throws声明;
  5. 调用printStackTrace()可以打印异常的传播栈,对于调试非常有用;
    捕获异常并再次抛出新的异常时,应该持有原始异常信息;
    通常不要在finally中抛出异常。如果在finally中抛出异常,应该原始异常加入到原有异常中。调用方可通过Throwable.getSuppressed()获取所有添加的Suppressed Exception。
  6. 断言是一种调试方式,断言失败会抛出AssertionError,只能在开发和测试阶段启用断言;
    对可恢复的错误不能使用断言,而应该抛出异常;
    断言很少被使用,更好的方法是编写单元测试。
  7. Java标准库提供了java.util.logging来实现日志功能。
  8. Commons Logging是使用最广泛的日志模块;
    Commons Logging的API非常简单;
    Commons Logging可以自动检测并使用其他日志模块。
  9. 通过Commons Logging实现日志,不需要修改代码即可使用Log4j;
    使用Log4j只需要把log4j2.xml和相关jar放入classpath;
    如果要更换Log4j,只需要移除log4j2.xml和相关jar;
    只有扩展Log4j时,才需要引用Log4j的接口(例如,将日志加密写入数据库的功能,需要自己开发)。
  10. SLF4J和Logback可以取代Commons Logging和Log4j;
    始终使用SLF4J的接口写入日志,使用Logback只需要配置,不需要修改代码。
发布了12 篇原创文章 · 获赞 0 · 访问量 516

猜你喜欢

转载自blog.csdn.net/s1421578048/article/details/103818861